我正在玩一个我想要绑定到所有链接的函数.目前,该功能在页面加载时触发,而不是在我点击链接时触发.
这是我的代码.(showDiv()如果你需要看的话,我可以在函数中过去.)你能告诉我这里做错了什么或傻吗?
$(document).ready(function(){
$('a.test').bind("click", showDiv());
});
Run Code Online (Sandbox Code Playgroud)
谢谢
zzz*_*Bov 64
您希望将对函数的引用作为回调传递,而不是函数执行的结果:
showDiv()返回一些值; 如果没有return使用任何声明,undefined则返回.
showDiv 是对应该执行的函数的引用.
这应该工作:
$(document).ready(function(){
$('a.test').bind("click", showDiv);
});
Run Code Online (Sandbox Code Playgroud)
或者,您可以使用匿名函数执行更高级的功能:
...bind('click', function(){
foo.showDiv(a,b,c);
...more code...
});
Run Code Online (Sandbox Code Playgroud)
在某些情况下,您可能希望将函数返回的值用作回调:
function function foo(which)
{
function bar()
{
console.log('so very true');
}
function baz()
{
console.log('no way!');
}
return which ? bar : baz;
}
...click( foo( fizz ) );
Run Code Online (Sandbox Code Playgroud)
在此示例中,foo使用fizz并返回一个函数进行评估,该函数将被指定为click事件的回调.
使用下面的行。 showDiv()将在执行该行时立即调用该函数。
$('a.test').bind("click", showDiv);
Run Code Online (Sandbox Code Playgroud)
看起来你直接在那里调用showDiv函数(并将showDiv()的返回结果绑定到click处理程序而不是直接绑定它.
你想要的东西
$(document).ready(function() { $('a.test').bind("click", showDiv); });
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
34909 次 |
| 最近记录: |