2012-08-24 27 views
-5

我在jQuery中使用.on方法而不是.live.on在jquery中的方法

$(function(){ 

$('.mydiv').live('click', function(){ //my code}) 

}) 

$(function(){ 

$('.mydiv').on('click','/*selector*/', function(){ //my code}) 

}) 

我想知道在.on函數中放入選擇器的是什麼。我想在 'mydiv'

+2

jQuery有一個很好的API。 http://api.jquery.com/on/ – undefined

+1

-1嘗試閱讀文檔?那麼,如果有任何剩餘的/具體的問題,那麼請張貼那些 - *更多的重點/細化*。 – 2012-08-24 06:56:15

+0

實際上,在這種情況下,'.live()'](http://api.jquery.com/live)的[doco]是一個很好的地方,因爲它解釋瞭如何轉換現有的'.live()'調用轉換爲'.on()'(或'.delegate()')。 – nnnnnn

回答

0
$(function(){ 
    $(document).on('click','.mydiv', function(){ //my code}); 
}); 

當委託你偵聽事件任何 點擊綁定時存在的元素,因爲事件處理程序只能綁定到綁定時實際存在於DOM中的元素,這將是上述語句中的第一個元素,然後它會檢查以查看如果目標(被點擊的元素)元素與您真正要監聽的元素相匹配,則是上述語句中的第二個元素。 document總是存在,但使用更接近實際元素的元素會更好。

它監聽文檔上的任何點擊,這是整個頁面,因爲所有元素都在文檔中,然後檢查點擊是否源自語句中的第二個元素,如果是,它會觸發功能。顯然,越接近實際元素,越少的元素將觸發點擊功能並被濾除。

0

從jQuery文檔應用功能:selector: A selector string to filter the descendants of the selected elements that trigger the event. If the selector is null or omitted, the event is always triggered when it reaches the selected element.

+0

http://api.jquery.com/on/ –

0
.on(events [, selector] [, data], handler(eventObject)) 

事件一個或多個空格分隔的事件類型和可選的命名空間,如「點擊」或「keydown.myPlugin」。 選擇器用於過濾觸發事件的選定元素的後代的選擇器字符串。如果選擇器爲空或省略,則該事件在到達選定元素時始終觸發。 數據當事件被觸發時要傳遞給event.data中的處理程序的數據。 處理程序(eventObject)觸發事件時執行的函數。值false也可以作爲簡單返回false的函數的簡寫;

$("#dataTable tbody tr").on("click", function(event){ 
    alert($(this).text()); 
}); 


$("#dataTable tbody").on("click", "tr", function(event){ 
    alert($(this).text()); 
}); 
0

作爲一個起點,總是要看看this function的Jquery API。

一個可能的用途:

$('.parent').on('click','.child', function(){ 
//code 
}) 

video可能會給你一個很好的概述