解决,Yohoo
我有一个对话插件,就像这样
$("#dialog").dialog({
click:function(){
alert(1);
},
'class':"dialog"
});
以下代码是一段主代码,它循环选项并检查key是否为jQuery函数然后调用它,否则将其设置为属性
$.each(options,function(key,val){
if(key in $.attrFn){
$('#div')[key](val); // I want pass arguments to this function
// equal $('#div').click(function(args){
// alert(1);
// });
// this is like jQuery ui dialog buttons options
} else {
$('#div').attr(key,val);
}
});
我想传递一些参数给函数,但我不知道怎么做?
示例:
$("#dialog").dialog({
click:function(dialog){
dialog.disAppear();
},
'class':"dialog"
});
解决:
$.each(v,function(q,w){
if(q in $.attrFn){
//console.log(dialog);
b[q](function(){
w(dialog);
});
} else {
b.attr(q,w);
}
});
答案 0 :(得分:1)
以下是http://jsfiddle.net/Jams/hcTTH/
上Dialog
的工作示例
有一个关于SO的问题可能符合您的要求How to pass a parameter to jQuery UI dialog event handler?
其他人在这里
答案 1 :(得分:0)
我们可以使用JavaScript IIFE传递参数,因此我们可以: 我把它包装到function(){},以防止自我执行
$.each(v,function(q,w){
if(q in $.attrFn){
if($.isFunction(w)) {
b[q](function(e){
w(e,dialog);
});
} else b[q](w);
} else {
b.attr(q,w);
}
});