Jquery中綁定事件有三種方法:以click事件為例
(1)target.click(function(){});
(2)target.bind("click",function(){});
(3)target.live("click",function(){});
第一種方法很好理解,其實就和普通JS的用法差不多,只是少了一個on而已
第二、三種方法都是綁定事件,但是二者又有很大的不同,下面著重講解一下,因為這個如果用到Jquery的框架的話是用的挺多的,尤其要注意二者的區別。
【bind和live的區別】
live方法其實是bind方法的變種,其基本功能就同bind方法的功能是一樣的,都是為一個元素綁定某個事件,但是bind方法只能給當前存在的元素綁定事件,對于事后采用JS等方式新生成的元素無效,而live方法則正好彌補了bind方法的這個缺陷,它可以對后生成的元素也可以綁定相應的事件。那么live方法的這個特性是怎么實現的呢?下面來探討一下其實現原理。
live方法之所以能對后生成的元素也綁定相應的事件的原因歸結在“事件委托”上面,所謂“事件委托”就是指綁定在祖先元素上的事件可以在其后代元素上進行使用。live方法的處理機制就是把事件綁定在DOM樹的根節點上,而不是直接綁定在某個元素上。舉一個例子來說明:
復制代碼 代碼如下:
$(".clickMe").live("click",fn);
$("body").append("<div>測試live方法的步驟</div>");
新聞熱點
疑難解答
圖片精選