stopPropagation()
또는 stopDefault()
을 jQuery와 함께 사용하는 이유를 이해할 수 없으므로 이벤트 핸들러 함수에서 콜백에 param을 도입해야합니다. 브라우저는 그 기능에 무엇을 전달해야하는지 어떻게 알 수 있습니까? 또한 this
을 사용하지 않는 이유는 무엇입니까?stopPropagation이 'this'를 사용하는 대신 콜백에서 이벤트 매개 변수를 사용하는 이유는 무엇입니까?
다음은 작동하는 코드입니다. 내가 굵게/혼란 부분을 별표로 표시했습니다 :
$(document).ready(function() {
$(".see-photos").on("click", function(**event**) {
event.stopPropagation();
$(this).closest(".tour").find(".photos").slideToggle();
});
$(".tour").on("click", function() {
alert("This should not be called");
});
});
나에게이 방법은 더 의미가 있습니다. 핸들러 함수에는 콜백에 대해 event
매개 변수가 없습니다. jQuerys' .on()
기능은 이벤트가 this
으로 발사 된 요소가 아닌 이벤트 자체를 전달하기 때문에입니다
$(document).ready(function() {
$(".see-photos").on("click", function() {
$(this).stopPropagation();
$(this).closest(".tour").find(".photos").slideToggle();
});
$(".tour").on("click", function() {
alert("This should not be called");
});
});
감사합니다. 그리고 더 자세한 레퍼런스를 보내 주셔서 감사합니다 : this/event.target! – jeffmjack