Jquery中的bind 方法的一點問題

2022-03-21 10:12:57 字數 774 閱讀 4106

bind()方法繫結事件的時候,第二個引數是函式,如果**都寫在函式裡面,沒有任何問題。但是,直接呼叫外部封裝的函式需要注意,出錯的例子:

點我

上面這個例子開啟網頁立即彈窗,說明外部的函式立馬執行了。當我們點選div的時候,沒反應了。。。

在匿名函式裡面呼叫外面封裝的函式就沒有問題了,正確的例子:

點我

這樣就正常了。

我們在實際操作中,很可能繫結好多個函式,這個函式有的要求執行1次便需要解綁,有的需要一直繫結。這種情況下,錯誤的例子:

點我

這樣操作,點選1次後,其實是把click事件解除了。之後,當然popwindow1()和popwindow2()都不會執行了。如果我們需要popwindow2()點選一次後消失,而popwindow1()點選時一直存在。這種寫法就不妥了。對於這種需求,正確的例子:

點我

這樣,點選一次後,popwindow2()消失,而popwindow1()點選時一直存在。$(this).unbind(event) 把本次繫結的事件取消了,而不會取消之前繫結過的事件,靈活性增加了。比如前面有個條件,如果達到這個條件後,取消繫結的這個函式,就用這個方法。

當然,上面的這個例子比較簡單,第二個函式可以用jquery中的one()方法繫結,點選一次後解綁實現同樣的功能。

注意:unbind()去不掉行間事件

jquery還有許多這樣的例子,都是一樣的解決辦法。

jQuery中bind和live方法的區別

bind和live方法的作用都是為被選元素新增乙個或多個事件處理程式,並規定當這些事件發生是執行的函式 不同點是 通過live方法附加的事件處理程式適用於匹配選擇器的當前及未來元素 比如由指令碼建立的新元素 這是乙個段落。這裡把上面的live換成bind效果是一樣的,不同的是 如 1 2 3jque...

jQuery中bind和live方法的區別

bind和live方法的作用都是為被選元素新增乙個或多個事件處理程式,並規定當這些事件發生是執行的函式 不同點是 通過live方法附加的事件處理程式適用於匹配選擇器的當前及未來元素 比如由指令碼建立的新元素 這是乙個段落。這裡 把上面的live換成bind效果是一樣的,不同的是 如 1 2 3jqu...

jQuery中on與bind的區別

bind的一般格式 id bind click function on的一般格式 id on click class function 從寫法上看,on比bind多了乙個對子標籤進行選擇的selector 非必須 這就是它們的區別,下面通過例項進行說明 name p p test1p name p ...