2010-08-04 49 views
0

我們將內容呈現在由客戶端提供的HTML'包裝器'內。該HTML包裝器包含對jQuery 1.2.6的引用,所以這就是我迄今爲止一直使用的jQuery功能。如何模仿jQuery.live(),或者在Prototype庫中使用2個jQuery版本?

我面臨的問題是我動態呈現需要與其關聯的點擊事件的內容。點擊事件與$(document).ready()上的元素相關聯。因此,我需要在1.3+版本中提供的.live()函數的功能。

所以我想知道我的選擇是什麼?

有什麼辦法讓我輕鬆地模仿.live()的功能,這樣我就不需要jQuery庫提供的函數了嗎?

我是否需要在我們的內容中包含新的jQuery庫?這不是理想的,因爲它會導致哪些需要管理衝突,我們已經在管理與原型庫,別人已經包含在與下面的行包裝衝突:

jQuery(document).ready(function ($) { 

,除非有人能告訴我一個簡單的方法來做到這一點?

......還是我把它放回客戶端,是時候讓他們升級他們的jQuery了?我不知道這是否會發生。

任何人都可以提出解決這個問題的辦法嗎?謝謝

回答

6

你可以簡單地推出自己的事件委託。例如,而不是綁定到動態創建的元素,如:

$('.foo').click(function() { /* foo handler */ }); 

可以代替附加處理程序,以更高的水平元素,如文檔,並過濾click事件:

$(document).click(function(evt) { 
    var $target = $(evt.target); 
    if ($target.is('.foo') || $target.parents('.foo').length > 0) { 
     /* foo handler */ 
    } 
}); 

這是(和較新的代表)的基本思想。


* 編輯例如檢查活動對象的父元素以及

+0

我查了對方的回答是正確的,因爲這是我的解決眼前的問題。我喜歡這個,當我有機會的時候,我會這麼看,所以+1 – DaveDev 2010-08-04 22:28:49

相關問題