亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在單擊功能上運行 jQuery,但不在子項上運行

在單擊功能上運行 jQuery,但不在子項上運行

楊__羊羊 2021-08-26 17:12:27
我click在 jQuery 變量上有一個事件處理程序rangeCont。這是一個<div>帶幾個孩子的。當用戶單擊它時,我希望事件處理程序可以工作,但不能為它包含的其中一個具有“拇指”類的子級工作。當我單擊拇指時,控制臺e.target中的span.thumb. 請問:not條件不是在選擇工作還是我做錯了什么?const rangeCont = $('<div class="range-slider"></div>'),  track = $('<span class="track">track</span>');progressTrack = $('<span class="progress-track">progress</span>'),  thumbHigh = $('<span class="thumb">thumb</span>');rangeCont.append(track);progressTrack.append(thumbHigh);rangeCont.append(progressTrack);$('body').append(rangeCont);rangeCont.on('click', ':not(.thumb)', function(e) {  console.log(e.target);});span {  margin: 0 1em;  background-color: rgba(0, 0, 0, 0.2);}.range-slider {  background-color: rgba(0, 0, 0, 0.2);  padding: 1em 0;}<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>編輯:引號對:not. 我注意到e.target是span.thumb,但e.currentTarget是span.progress-track這是拇指下方,如果這是非常重要的。
查看完整描述

2 回答

?
青春有我

TA貢獻1784條經驗 獲得超8個贊

您可以直接檢查事件的 e.target 并添加一個條件,以確保點擊是在正確的目標上。


該事件仍將被引發,但您可以在不觸及傳播的情況下取消它。


$('#rangeCont').on('click', function(e) {

    if ($(e.target).is('.thumb'))

        return;


    console.log(e.target);

});


查看完整回答
反對 回復 2021-08-26
?
一只萌萌小番薯

TA貢獻1795條經驗 獲得超7個贊

停止使用stopPropagation. 使用下面的代碼


$(".range-container .thumb").on('click', function(e){

   event.stopPropagation();

});


查看完整回答
反對 回復 2021-08-26
  • 2 回答
  • 0 關注
  • 188 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號