2 回答

TA貢獻1790條經驗 獲得超9個贊
jQuery中live函數:
給指定id或class的元素綁定(bind)事件時,對于改變或新加的元素,事件不會起作用,這時我們就要用live函數,它可以讓子元素繼承父元素的事件。
事件委托
live() 方法能對一個還沒有添加進DOM的元素有效,是由于使用了事件委托:綁定在祖先元素上的事件處理函數可以對在后代上觸發的事件作出回應。傳遞給 .live() 的事件處理函數不會綁定在元素上,而是把他作為一個特殊的事件處理函數,綁定在 DOM 樹的根節點上。在我們的例子中,當點擊新的元素后,會依次發生下列步驟:
生成一個click事件傳遞給 <div> 來處理
由于沒有事件處理函數直接綁定在 <div> 上,所以事件冒泡到DOM樹上
事件不斷冒泡一直到DOM樹的根節點,默認情況下上面綁定了這個特殊的事件處理函數。
執行由 .live() 綁定的特殊的 click 事件處理函數。
這個事件處理函數首先檢測事件對象的 target 來確定是不是需要繼續。這個測試是通過檢測 $(event.target).closest('.clickme') 能否找到匹配的元素來實現的。
如果找到了匹配的元素,那么調用原始的事件處理函數。
由于只有在事件發生時才會在上面的第五步里做測試,因此在任何時候添加的元素都能夠響應這個事件。

TA貢獻2036條經驗 獲得超8個贊
試試這個:
$("#edit"+inId+inFd).live('focus blur', function(event) {
if (event.type == 'focus') {
// do something on focus
} else {
// do something on blur
}
});
- 2 回答
- 0 關注
- 328 瀏覽
相關問題推薦
添加回答
舉報