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

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

當您將鼠標釋放到外部時,如何停止點擊傳播

當您將鼠標釋放到外部時,如何停止點擊傳播

繁星coding 2021-03-30 13:15:22
我有一個有關如何停止事件傳播的問題。想象一下,我有兩個div,一個容器和一個競爭。當我在內容內進行完整單擊(鼠標向下移動和鼠標向上移動)時,可以使用preventDefault()停止傳播但是,如果我將mousedown放在內容內部,將鼠標移到外部并釋放按鈕,則將觸發容器處理程序。我不在乎內容中的事件,但是在這種情況下,我需要停止事件通過容器進行。我做了一個小提琴來測試它:https : //jsfiddle.net/Lq7v50nw/JS:$('#container').on('click', function(){alert('click in container')});$('#content').on('click', function(ev){ev.stopPropagation();alert('click in content')});的HTML<div id="container">  <div id="content"></div></div>反正有實現這種行為的方法嗎?謝謝你。編輯(有關我已經嘗試過的內容的更多信息)更改mousedown的click事件。問題在于他們需要在內容內單擊并拖動,有時拖動到內容之外會觸發容器處理程序。我無法使用mousedown。
查看完整描述

3 回答

?
人到中年有點甜

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

您需要停止使用本機的“ click”事件,并以某種方式實現自己的合成“ click”事件。您需要同時聆聽“ mousedown”和“ mouseup”,才能模仿“ click”。

想法是在“ mousedown”內部附加一個一次性的“ mouseup”處理程序,以合成完整的“ click”。

如果“鼠標按下”在#內容,你stopPropagation并附加“鼠標松開”給#內容。這樣,由于#container沒有附加“鼠標”,因此無法在其上觸發這種合成的“喀噠”聲。


查看完整回答
反對 回復 2021-04-22
?
湖上湖

TA貢獻2003條經驗 獲得超2個贊

也許您可以通過“ mousedown”解決您的問題?


$('#container').on('mousedown', function(ev){

ev.stopPropagation();

alert('click in container')

});


$('#content').on('mousedown', function(ev){

ev.stopPropagation();

alert('click in content w2')

});

它立即觸發


查看完整回答
反對 回復 2021-04-22
?
長風秋雁

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

嘗試結合使用keyup和mosuseup


 $('#container').on('keyup', function(ev){

    alert('click in container');

ev.stopPropagation();

});


$('#content').on('mouseup', function(ev){

    ev.stopPropagation();

    alert('click in content')

});

我希望這會有用。


查看完整回答
反對 回復 2021-04-22
  • 3 回答
  • 0 關注
  • 228 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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