목록 항목 내에 앵커가 있습니다. 두 요소 모두 이벤트가 있습니다. 내에서 앵커를 클릭하면 목록 항목을 클릭하지 않도록하고 싶습니다.jQuery : 자식의 바인딩 해제 이벤트?
저는 혼돈을 피하고 싶습니다. 나는이 기능을 찾았지만 내가 원하는대로 내가 그들을 사용 할 수 없습니다 : 여기
// HTML
<ul>
<li id="1">Item #1 <a href="" class="delete">[DEL]</a></li>
<li id="2">Item #2 <a href="" class="delete">[DEL]</a></li>
<li id="3">Item #3 <a href="" class="delete">[DEL]</a></li>
<li id="4">Item #4 <a href="" class="delete">[DEL]</a></li>
</ul>
// JS
$("ul").sortable();
$(document).on("click", "li", function() {
alert("list-item clicked.");
});
$(document).on("click", "a.delete", function(e) {
e.preventDefault();
if (confirm("Del?")) {
alert("list-item clicked.");
}
// do nothing
});
입니다 :
코드가 있다고 바이올린 : http://jsfiddle.net/UtE87/1/
가장 좋은 방법은 무엇입니까? 많은 감사드립니다!
간단합니다, 와우. 부끄러운 줄 알아. 고마워, 내가 허락하자마자 너의 대답을 받아 들일거야! –
@ Mr.Bombastic : 이것은 jQuery가 백그라운드에서 마술을하기 때문에 작동합니다. * 이벤트 위임 *을 사용하므로 두 핸들러 모두 동일한 요소에 바인드됩니다. jQuery가 없다면,'e.stopPropagation()'은 여기서 작동하지 않을 것입니다. (불행하게도 문서는 정확히 무슨 일이 일어나는지 설명하지 않습니다.) –