0

解決しました、Yohoo

このようなダイアログプラグインがあります

$("#dialog").dialog({
  click:function(){
    alert(1);
  },
  'class':"dialog"
});

次のコードは、オプションをループし、キーが 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

Dialogこれはhttp://jsfiddle.net/Jams/hcTTH/の実例です

ここであなたの要件に合うかもしれないSOに関する質問があります.How to pass a parameter to jQuery UI dialog event handler?

もうひとつはこちら

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 に答える