1

这是hy头底部的样子:

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

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

谢谢!

4

1 回答 1

2

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

所以添加doc ready处理程序

$(function() {

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

它将确保代码在DOM准备好时触发。

如果你只是$("#hello").mouseenter(...)不使用 any ,那么当DOM 中还doc ready block没有任何元素时,这段代码就有可能运行。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/

于 2012-06-23T05:24:41.017 回答