我习惯使用这种语法:
<script type="text/javascript">
$(document).ready(function(){
$("button").click(function(){
$("p").hide(1000,function(){
alert("The paragraph is now hidden");
});
});
});
</script>
但是最近我遇到了一个也有效的,
<script type="text/javascript">
$(document).ready(function(){
$("a").hover(function(){
$(this).stop().animate({ color: '#a6d13b'}, "normal");
}, function() {
$(this).stop().animate({ color: '#000000'}, "normal"); //original color
});
});
</script>
我只是jquery的新手,非常感谢一些帮助。为什么第二种语法有效?即使它在动画功能之外。 ?
答案 0 :(得分:2)
这两个脚本做了完全不同的事情,但是(只是在这里猜测)我觉得令人困惑的是,在第二个脚本中,.hover()
函数将两个回调作为参数,一个用于mouseenter,一个用于mouseleave,如下所示:
$("a").hover(callbackFunctionOne, callbackFunction2);
// OR
$("a").hover(function() { ... }, function() { ... });
在您的示例中,传递给.hover()
的这两个函数在.animate()
调用发生,但.animate()
调用本身没有(在这种情况下)有回调。< / p>
编辑:既然dknaack已经编辑了你的代码以使其正确缩进,那么.animate()
调用就在这两个函数中更为明显。当它没有缩进时,很难看出属于什么的东西。
请注意.animate()
(以及许多其他jQuery函数)可以进行回调,但这是可选的。