我有来自 JQuery 的 W3Schools 示例的代码块。在 W3Schools 上试试。我只在 hide 方法调用中添加了一个回调。
第一个案例
<!DOCTYPE html> <html> <head> <script src="jquery.js"></script> <script> function sayHello(){ alert('hello sit'); }
$(document).ready(function(){ $("button").click(function(){
$("p").hide(100,sayHello); }); });
</script> </head> <body> <button>Hide</button> <p>This is a paragraph with little content.</p> <p>This is another small paragraph.</p> </body> </html>
第二种情况是
<!DOCTYPE html> <html> <head> <script src="jquery.js"></script> <script> function sayHello(){ alert('hello sit'); }
$(document).ready(function(){ $("button").click(function(){
$("p").hide(100,sayHello()); }); });
</script> </head> <body> <button>Hide</button> <p>This is a paragraph with little content.</p> <p>This is another small paragraph.</p> </body> </html>
两者的唯一区别是使用或不使用大括号传递回调函数。
在第一种情况下,单击隐藏按钮时,我会收到两次问候警报。在第二种情况下,我只收到一次你好警报。我希望警报在这两种情况下都只会出现一次,因为无论是否使用大括号调用零参数函数都无关紧要。
我想了解为什么在不带括号的情况下传递函数名称时它会调用两次回调函数。