我正在jQueryUI小部件工厂中开发一个jQuery小部件,它需要一个函数作为参数传递给它。问题是每次创建一个新的widget实例时,传递的函数都会运行。这是我的代码:
$(function(){
$('a').addrow({
inputs:[
{
name:'loo',
type:'submit',
click:function(){alert(1);}
}
]
})
})
$.widget('namespace.addrow', {
options: {
inputs:[]
},
_create: function () {
alert(2);
}
})
如您所见,我在inputs
数组中传递了一个匿名函数,并且在文档准备好后立即执行alert(1);
。
答案 0 :(得分:0)
我不知道jQueryUI小部件工厂,但如果您的匿名函数正在执行,请将其包装在另一个匿名函数中,如下所示:
click:function(){
return (function(){
alert(1);
}) ;
}
这应该有效。
更新: 不使用return:
click:function(){
this.click = (function(){
alert(1);
}) ;
}