我试图将事件绑定到包含参数的文本框.以下内容看起来好像应该这样做,但每次加载页面时都会执行.
jQuery(function(){ jQuery('#textBox').bind('click',EventWithParam('param')); });
解决方法
要绑定带参数的函数,请使用匿名函数作为参数的闭包.
jQuery(function($) { var param = 'text'; $('#textBox').click(function() { EventWithParam(param); // or just use it without calling out to another function $(this).text(param); }); });
您的示例是执行EventWithParam函数,然后尝试绑定到该函数调用的结果.
在未指定函数的情况下调用unbind
将取消绑定指定类型的事件(包括匿名函数)的所有处理程序.如果你想专门解开该功能,你需要为它提供一个名字,如下所示:
jQuery(function($) { var param = 'text',clickCallback = function() { EventWithParam(param); // or just use it without calling out to another function $(this).text(param); }; $('#textBox').click(clickCallback); });