这是hy头底部的样子:
$('#hello').mouseenter(function() {
$(this).effect("bounce", { times:1, distance:10 }, 800);
});
我正在链接到 jQuery 1.7.2 和 jQuery UI 1.8。我没有收到任何错误,但是当我将鼠标悬停在#hello div 上时,什么也没有发生。有任何想法吗?
谢谢!
你的 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
});