2011-05-30 41 views
0

我試圖綁定功能,使用jQuery這些事件:的jQuery .bind()無法正常工作

$("#cmplist tr").bind('onmouseover', function(){ 
    console.log('1'); 
}); 

$("#cmplist tr").bind('onmouseout', function(){ 
    console.log('2'); 
}); 

$("#cmplist tr").bind('click', function(){ 
    console.log('3'); 
}); 

但是他們都不工作。我有理由相信我的選擇是因爲,當我進入控制檯$("#cmplist tr")它返回正確的:

[tr, tr#survey3, tr#survey20, tr#survey22, tr#survey26, tr#survey28, tr#survey29, tr#survey30, tr#survey33, tr#survey34, tr#survey6, tr#survey19, tr#survey14, tr#survey32, tr#sweepstakes5, tr#sweepstakes9, tr#coupons5, tr#freesample4, tr#freesample5, tr#freesample6, tr#freesample7, tr#gifts3, tr#gifts4, tr#polls2, tr#polls5, tr#polls6, tr#quiz8, tr#trivia4, tr#photo6, tr#photo10, tr#photo11, tr#photo12, tr#photo13, tr#photo15, tr#photo16, tr#photo17, tr#video4, tr#iframe2, tr#iframe4] 

我失去了一些關於jQuery的事件是如何工作的?

回答

8

從您的活動名稱中刪除「on」。另外我認爲現在要做的事情是在jQuery事件處理程序中使用「mouseenter」和「mouseleave」。這些事件由圖書館「規範化」,以便在面對古怪的瀏覽器行爲時使所有事情都更可靠。

此外,請確保你做你的「就緒」處理器的替代約束力,除非你確信你已經有了,同樣有效的解決方案:

$(function() { 

    // your event binding stuff here 

}); 
+0

感謝@Pointy,這解決了它。從現在開始,我會在做這類事情時使用一個準備好的處理程序:) – 2011-05-30 07:22:46

2

試試這個:

$(function(){ 

    $("#cmplist tr").bind('mouseover', function(){ 
     console.log('1'); 
    }); 

    $("#cmplist tr").bind('mouseout', function(){ 
     console.log('2'); 
    }); 

    $("#cmplist tr").bind('click', function(){ 
     console.log('3'); 
    }); 

}); 
+0

他的代碼和你的代碼有什麼區別。 – kobe 2011-05-30 03:53:31

+0

@kobe我看到'onmouseover'和'onmouseout'不工作。當我從他們身上移除'on'時,它就起作用了。 – thecodeparadox 2011-05-30 04:22:27