我正在處理的代碼太複雜了,所以我無法在這裏粘貼我的代碼。爲什麼jquery live()在委託()不工作時工作?
但我遇到的情況是taht:包括在兩個不同的HTMLS,
在一個HTML的delegate()
工作,但在對方只是沒有影響 .js文件。
然後,我用live()
替換delegate()
,然後在兩個html中工作正常。
我只是好奇爲什麼發生這種情況..
可能是因爲我在兩個htmls中包含太多不同的js文件,並可能導致一些衝突嗎?
我正在處理的代碼太複雜了,所以我無法在這裏粘貼我的代碼。爲什麼jquery live()在委託()不工作時工作?
但我遇到的情況是taht:包括在兩個不同的HTMLS,
在一個HTML的delegate()
工作,但在對方只是沒有影響 .js文件。
然後,我用live()
替換delegate()
,然後在兩個html中工作正常。
我只是好奇爲什麼發生這種情況..
可能是因爲我在兩個htmls中包含太多不同的js文件,並可能導致一些衝突嗎?
你不得不暗示,當你委託()一些元素,當你調用委託時,該元素必須出現在dom中。
所以,如果你
$('#mycontainer').delegate(....
與ID myContainer中的元素必須存在,否則委託()將無法工作。一個解決辦法,導致一些開銷委託給document
或到body
:
$('body').delegate()
直播()總是工作,因爲現實中你是委託給身體。
謝謝!我認爲第一點可能是原因。我認爲delegate()只是live()的一個更高效的替代。我沒有注意到delegate()需要已經設置的元素。 – Aloong
你能給我們一些這兩個例子的代碼? –
您是否正在通過AJAX在其他頁面上重新載入您設置了委託()的選擇器,因爲這可能是它不起作用的原因 – TommyBs
這是一個太理論化的問題。如果你提供了js和html文件的最小版本,這將是非常有用的,所以我們可以看看。 – kubetz