【问题标题】:How to pass argument?如何传递论据?
【发布时间】:2012-05-15 12:21:36
【问题描述】:

解决了,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);
    }
});

【问题讨论】:

  • 您想将参数传递给什么函数?请编辑您的问题并澄清。
  • @jmort253 到 $('#div')[q](val);它等于 ( $('#div').click(function(pass here){}); )
  • 在问题下方,单击编辑,然后将其放入您的问题中。不要强迫试图帮助您阅读 cmets 代码的人。这表明对帮助您的社区缺乏尊重。谢谢! :)
  • 感谢您这样做:)
  • MR OK - 恭喜您找到解决方案。但是,答案不应该出现在问题的主体中。接下来,您应该在下面标记一个已接受的答案,或者如果以下任何一个都不能解决问题,您应该将您的解决方案作为问题的答案发布,并将其标记为实际的、已接受的答案。回答您自己的问题是完全可以接受的,只要它作为实际答案发布即可。祝你好运,感谢您回来跟进解决方案。您已确保其他人也能从中受益!

标签: javascript jquery jquery-ui


【解决方案1】:

我们可以使用 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);
    }
});

【讨论】:

    【解决方案2】:

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

    有一个关于 SO 的问题可能适合您的要求,这里是 How to pass a parameter to jQuery UI dialog event handler?

    别人来了

    Passing data to a jQuery UI Dialog

    【讨论】:

    • 那是骗人的,不是答案。
    • @MR.OK:如果你能告诉我们你想在哪里传递参数,那么我可以试着给你一个正确的答案。
    • 您当然可以尝试详细说明您的答案,并包括一些细节,使其不仅仅是几个重复的链接。我个人觉得你添加的两个资源比操作要求的要复杂得多,我相信我们都可以从一个简短的例子中受益?
    猜你喜欢
    • 2022-01-07
    • 2016-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-03
    • 1970-01-01
    • 1970-01-01
    • 2018-01-11
    相关资源
    最近更新 更多