我的目標是防止所有的點擊事件(點擊時在HTML中隱藏/顯示元素),除非滿足某個條件(用戶在輸入元素中有特定的詞)。jQuery stopPropagation被忽略
所以我試圖將該邏輯添加到文檔或「html」的點擊處理程序,但其他元素的點擊處理程序首先因爲氣泡而被解僱。
所以我嘗試將該邏輯附加到「*」,現在該單擊處理程序首先觸發 - 但將其傳播到其他元素,忽略stopPropagation,preventDefault並返回false。
$(document).ready(function(){
$("*").click(function(event){
if ($("#user").val() !== "admin"){
console.log("1");
event.stopPropagation();
event.preventDefault();
return false;
}
});
$("#user").click(function(event){
console.log("2");
// do something
});
});
- 爲什麼「2」被寫入「1」後的控制檯時,不應該有,因爲將返回false/stopPropagation的任何進一步傳播?
- 我該如何使用jQuery實現我的目標?
謝謝!
'$(「*」)。click'我的心剛跳過一拍。 –
如果你阻止所有的點擊事件,用戶如何點擊'user'元素,以便他可以輸入'admin'? – Barmar
@Barmar,重點始於用戶,我不會讓它去任何其他地方 – yair