萬盛學電腦網

 萬盛學電腦網 >> 腳本專題 >> javascript >> jQuery中live與bind方法的區別

jQuery中live與bind方法的區別

 本篇文章主要是對jQuery中live與bind方法的區別進行了詳細的分析介紹,需要的朋友可以過來參考下,希望對大家有所幫助

注意如果是通過jq添加的層和對象一定要用live(),用其他的都不起作用   live的缺點就是,運行完以後不釋放空間,太多的使用會占用更多的內存,bind()則點擊完以後釋放空間   區別一:   Click here   可以給這個元素綁定一個簡單的click事件:   $('.clickme').bind('click', function() { $('body').append('   Another target '); });    當點擊了元素,就會彈出一個警告框。然後,想象一下這之後有另一個元素添加進來了。   盡管這個新的元素也能夠匹配選擇器 ".clickme" ,但是由於這個元素是在調用 .bind() 之後添加的,所以點擊這個元素不會有任何效果。   .live() 就提供了對應這種情況的方法。如果我們是這樣綁定click事件的:   $('.clickme').live('click', function() { alert("Live handler called."); });   然後再添加一個新元素:   $('body').append('   Another target ');    然後再點擊新增的元素,他依然能夠觸發事件處理函數。       區別二:   (1)bind方法可以綁定任何JavaScript的事件,而live方法在jQuery1.3的時候只支持click, dblclick, keydown, keypress,keyup,mousedown, mousemove, mouseout, mouseover, 和 mouseup.在jQuery 1.4.1中,甚至也支持 focus 和 blue事件了(映射到更合適,並且可以冒泡的focusin和focusout上)。另外,在jQuery 1.4.1中,也能支持hover(映射到"mouseenter mouseleave")。   (2)live() 並不完全支持通過DOM遍歷的方法找到的元素。取而代之的是,應當總是在一個選擇器後面直接使用 .live()方法。   (3)當一個元素采用live方法進行事件的綁定的時候,如果想阻止事件的傳遞或冒泡,就要在函數中return false,僅僅調用stopPropagation()是無法實現阻止事件的傳遞或者冒泡的  
copyright © 萬盛學電腦網 all rights reserved