我在想這是一個bug,但是從1.4.2開始,.live()
應該支持自定義事件。這是一個快速的小演示:http://jsbin.com/erofi/edit爲什麼.live()與我的自定義事件無關,但.bind()會如何?
這是一個錯誤,還是我做錯了我的觸發器?
我在想這是一個bug,但是從1.4.2開始,.live()
應該支持自定義事件。這是一個快速的小演示:http://jsbin.com/erofi/edit爲什麼.live()與我的自定義事件無關,但.bind()會如何?
這是一個錯誤,還是我做錯了我的觸發器?
.live()
必須在選擇器被使用。在事件時檢查事件目標元素是否匹配選擇器字符串。這在文檔'警告'中暗示:
找不到要發送到.live()的元素的DOM遍歷方法。相反,應該總是在選擇器之後直接調用.live()方法,如上例所示。
$(document)
不是選擇器。如果你看一下$(document).selector
,這是記得選擇字符串live()
用來匹配,你會得到一個空字符串,因此live()
不工作。
由於選擇器僅匹配元素,因此不能與document
匹配live
。再次,由於document
永不改變,所以不需要:正常綁定就可以。
(這是不幸的API設計,這應該是$.live('selector', 'event', function() {});
IMO。$('selector').live()
使得它實際上做什麼不清楚,而且肯定還有應該是一個錯誤,當您在一個包裝調用live()
沒有選擇。)
我不認爲你可以將事件委託給'文檔'。
不完全確定,但我認爲.live()
到目前爲止不會起泡。
嘗試.bind()
和.trigger()
對於其它元件下document.body
這就是爲什麼.delegate()被引入,工作「更好」並使事情更加清晰的原因 – jAndy 2010-04-27 11:18:10
感謝您的明確回答 – Jason 2010-04-27 16:23:34