Javascript和jquery事件--阻止事件冒泡和阻止默認事件


阻止冒泡和阻止默認事件—js和jq相同,jq的event是一個全局的變量

我們寫代碼的時候常用的都是事件冒泡,但是有的時候我們並不需要觸發父元素的事件,而瀏覽器也有自己的默認行為(表單提交、超鏈接跳轉等)。

  1. 點擊按鈕子元素的時候不希望觸發父元素的點擊事件。
  2. 之前提到的mouseout事件。
  3. 在大部分元素上滾動鼠標滑輪都會觸發body的界面滑動(如果界面有滾動條)
  4. 在有滾動條的元素中滾動不會觸發body界面的滑動,但是滑條滑到底部或者頂部並繼續滑動的時候會觸發父元素乃至body整體的界面滑動。

 

其中,1、2涉及的是事件的冒泡,3、4涉及的則是事件的默認事件。

在jq中使用的是(其中的event是一個全局變量,也許?我並沒有定義它,而是直接拿來用的):

event.stopPropagation();//阻止冒泡

event.preventDefault();//阻止默認行為

在js中:

function clickfunction(e){

           var event = e||window.event;//兼容

           event.stopPropagation();//阻止冒泡

           event.preventDefault();//阻止默認行為

}

可以看出只是event的獲取方式不同。

---------------------------------------------------------------------------------------------------------------------------

補充一點,我似乎忘了它的兼容寫法

阻止瀏覽器默認行為兼容性寫法

event.preventDefault ? event.preventDefault() : (event.returnValue = false);

阻止冒泡寫法

event.stopPropagation ? event.stopPropagation() : (event.cancelBubble = true);


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM