0

解决了,优酷

我有一个对话框插件,像这样

$("#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);
    }
});
4

2 回答 2

1

这是http://jsfiddle.net/Jams/hcTTH/Dialog上的一个工作示例

有一个关于 SO 的问题可能适合您的要求,它是如何将参数传递给 jQuery UI 对话框事件处理程序?

另一个在这里

将数据传递给 jQuery UI 对话框

于 2012-05-06T21:41:50.080 回答
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);
    }
});
于 2012-05-07T10:18:58.310 回答