2011-05-30 40 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