나는이 코드 유형이 :중지 이벤트 전파 JS
<button onclick="fn1();fn2();fn3()">Clic</button>
난을 Fn1 뭔가를 테스트하고 사실이라면, 나는 Fn2를하고 fn3가 호출되고 싶지 않아. fn1에서 event.stopPropagation()을 사용했습니다 (브라우저 간 방식으로 이벤트를 함수에 전달). 그러나 다른 함수는 어쨌든 호출됩니다.
아무도 도와 줄 수 있습니까?
나는이 코드 유형이 :중지 이벤트 전파 JS
<button onclick="fn1();fn2();fn3()">Clic</button>
난을 Fn1 뭔가를 테스트하고 사실이라면, 나는 Fn2를하고 fn3가 호출되고 싶지 않아. fn1에서 event.stopPropagation()을 사용했습니다 (브라우저 간 방식으로 이벤트를 함수에 전달). 그러나 다른 함수는 어쨌든 호출됩니다.
아무도 도와 줄 수 있습니까?
이 시도 :
<html>
<head>
<script>
function fn1() {
alert('fn1()');
return false;
}
function fn2() {
alert('fn2()');
return true;
}
function fn3() {
alert('fn3()');
window.location.assign("http://www.google.com");
}
</script>
</head>
<body>
<button onclick="fn1()&&fn2()&&fn3()">Click</button>
</body>
</html>
모든 기능을 다음 논리 연산자 & &를 사용 부울 반환해야합니다 내부의 onclick
<button onclick="fn1()&&fn2()&&fn3()">Click</button>
을 Fn1()가 false F2를 반환하는 경우) (볼 수 및 f3()은 실행되지 않습니다.
고마워요. 이 작동합니다. 유일한 나쁜 점은 당신은 다음 번조를 촉발시키기 위해 진실한 귀가를해야한다는 것입니다 ... 그러나 그것은 잘 지내고 있습니다. 감사. – Fred
좋은 방법은 아니지만 방법이 있습니다. 실행을 막기 위해 예외를 던질 수 있습니다. 당신은 당신을 Fn1을 변경할 수 있습니다
<button onclick="if(!fn1()){fn2();fn3()}">Click</button>
안녕하세요 앤드류. 감사하지만 사실 오류가 발생하기가 어렵습니다. ^^ – Fred
이 아니라고 함수는 수행 한 점검 결과를 리턴합니다. 나는 또한 .addEventListener() 대신의 OnClick 속성을 사용에 익숙해지고 추천
if (!fn1()) { fn2(); fn3(); };
: 그런 다음에 온 클릭 속성을 변경할 수 있습니다.
: 난 당신이 단순히 아래에 언급 된 것과 유사한 버튼의 경우 조건을 가질 수 있습니다 다시 그것이 좋은 연습
<script type="text/javascript">
function one(){
var a = 1;
console.log('one');
if(a == 1){
throw new RangeError("Sorry, but you are too young for this movie");
}
}
function two(){
console.log('two');
}
</script>
<button onclick="one();two();">Click me.</button>
하나가 아닌 3 개의 이벤트 리스너를 올바르게 연결하면 어떨까요? – Bergi