use*_*090 8 jquery events function
我一直在探索为事件处理程序使用自定义函数.在这个精简的示例中,我试图在用户单击按钮时弹出警报.
但是当页面加载时,警报框会立即弹出!我究竟做错了什么?(评论部分完全相同).
如果我定义bclick()函数就好
function bclick(foo, bar){ ... }
Run Code Online (Sandbox Code Playgroud)
结果也是一样的.
头文件中的JS:
<script type="text/javascript">
var bclick = function(foo, bar){alert( foo + " " + bar + "\n");}
//$(document).ready(function(){
// $("button").click(bclick("Button","Clicked"));
// });
$("button").click(bclick("Button","Clicked"));
</script>
Run Code Online (Sandbox Code Playgroud)
正文中的相关HTML:
<button>Click Me!</button>
Run Code Online (Sandbox Code Playgroud)
Sas*_*gov 19
您甚至在通过它之前都在评估您的功能.
$("button").click(bclick("Button","Clicked"));
Run Code Online (Sandbox Code Playgroud)
这里,bclick
使用这些参数调用,结果将传递给click
方法.你想像普通变量一样传递它,如下所示:
$("button").click(bclick);
Run Code Online (Sandbox Code Playgroud)
但是,显而易见的问题是,您无法传递自定义参数.
你也可以传入一个调用你的函数的匿名函数:
$("button").click(function() { bclick("Button", "Clicked"); });
Run Code Online (Sandbox Code Playgroud)