2013-08-07 47 views
1

我更新我的腳本,所以那些在jQuery的1.9+正在

live被刪除,我必須把它轉換成on語法。 There are some examples on the jQuery documentation。該文檔提供了:

$(selector).live(events, data, handler); // jQuery 1.3+ 
$(document).on(events, selector, data, handler); // jQuery 1.7 

所以 $("a").live("click", handler) schould轉換爲$(document).on("click","a", handler)等。

但是,如何轉換我沒有selector?在我的情況下,這是在一個插件。

$(this).live("click", handler) 

這不是工作:

$(document).on("click",$(this), handler) 

--edit

我需要授權,所以bind是解決不了問題。這是在一個插件裏面使用的,其中代碼是

elem.live("click", handler),其中elem有時是選擇器,有時候是$(this)。我無法控制。

+3

無論如何這是毫無意義的。 「.live()」和「.on()」都是指在事件附加後,在飛行中創建的元素**。在$(this)的情況下,它已經存在,因此只需使用'.click()'或'.bind(click,...)'。 –

+1

對於委託事件的目標選擇器只能是DOC –

+0

中指定的字符串這不是一個毫無意義的發佈IMO,但我不能看到在這裏使用委派的目的,因爲當你使用'this'時,你指的是/某些特定的元素(s)所以爲什麼不直接綁定事件沒有使用委派。你能提供一個具體的例子嗎? –

回答

0

只使用

$(this).on("click", handler); 

$(this).click(handler); 
0

的。對方法可以如下:

$(document).on("click", function (e) { 
    // handle the click 
}); 

而且,你有$(this)將是代碼記錄自己,而不是您希望點擊綁定的內容。