我有一個關於jQuery的非常概念性的問題。我有這個小提琴綁定點擊處理程序身體只有在點擊元素
我想要做的是: 一個單擊處理程序綁定到的鏈接。 點擊鏈接以顯示警報。 只有在發生這種情況後,才能將點擊事件處理程序綁定到正文,以便正文中任何位置的點擊都會顯示不同的警報。
我敢肯定這是微不足道的,我只是無法環繞它。我如何將處理程序綁定到正文,以便在鏈接點擊時不觸發?
讚賞任何幫助,
我有一個關於jQuery的非常概念性的問題。我有這個小提琴綁定點擊處理程序身體只有在點擊元素
我想要做的是: 一個單擊處理程序綁定到的鏈接。 點擊鏈接以顯示警報。 只有在發生這種情況後,才能將點擊事件處理程序綁定到正文,以便正文中任何位置的點擊都會顯示不同的警報。
我敢肯定這是微不足道的,我只是無法環繞它。我如何將處理程序綁定到正文,以便在鏈接點擊時不觸發?
讚賞任何幫助,
$("#infolink").click(function(e) {
e.stopPropagation();
alert('link')
});
$('body, :not("#infolink")').click(function() {
alert('body');
});
你的榜樣讓我朝着正確的方向前進。 http://jsfiddle.net/shQVC/。但我希望有一個更優雅的解決方案來顯示這種因果關係比使用布爾信號量。 – glasspill
@glasspill謝謝,感覺開心 – thecodeparadox
嘗試以下操作:
var link = $('#infolink');
var handler = function (event) {
link.off('click', handler);
event.stopPropagation();
$('body').on('click', function (event) {
alert('some other message');
});
alert('some message');
};
link.on('click', handler);
我不知道是什麼阻礙了你的。這是傳播嗎?如果是這樣,在鏈接的點擊處理程序中添加'event.stopPropagation()'。 –