jQuery反弹没有解雇

时间:2012-06-23 05:13:49

标签: jquery bounce

这就是hy head的底部:

$('#hello').mouseenter(function() {
$(this).effect("bounce", { times:1, distance:10 }, 800);
});

我正在链接到jQuery 1.7.2和jQuery UI 1.8。我没有收到任何错误,但是当我将鼠标悬停在#hello div上时,什么也没发生。 有什么想法吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

你的jQuery代码看起来很好,所以你很可能错过了document ready

所以添加doc ready处理程序,如

$(function() {

    $('#hello').mouseenter(function() {
        $(this).effect("bounce", {
            times: 1,
            distance: 30
        }, 800);
    });   
});​

它将确保在DOM准备就绪时触发该代码。

如果你只使用$("#hello").mouseenter(...)而不使用任何doc ready block,那么当DOM中还没有任何带有id hello的元素时,有可能运行此代码。因此$("#hello")将返回一个空集,mouseenter绑定将不起作用。

没有doc ready block

时无效的示例标记
.
.
.
<script type="text/javascript">
    $("#hello").mouseenter(....);
</script>
.
.
.
.
<div id="hello">Blah Blah....</div>

作为浏览器,按顺序解释标记,它将在面对它时立即执行js代码。当它在这里执行JS块时,它尚未解析<div id="hello">标签,因为它出现在JS块之后,所以它们当时不在DOM中。

因此,对于上述情况,$("#hello")为空,因此事件绑定将不起作用。所以将所有JS代码放在document ready块中就像

一样安全
$(function){
   // put all your JS code here
});

了解更多http://api.jquery.com/ready/