2012-05-06 134 views
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); 
    } 
}); 
+0

你想傳遞什麼函數的參數?請**編輯**您的問題並澄清。 – jmort253

+0

@ jmort253 to $('#div')[q](val);它等於($('#div')。click(function(pass here){}); ) –

+1

在問題下面,單擊**編輯**,然後將其放入您的問題中。不要強迫人們試圖幫助你閱讀評論中的代碼。它顯示了對幫助你的人羣的不尊重。謝謝! :) – jmort253

回答

0

我們可以使用JavaScript IIFE來傳遞參數,所以我們可以: 我包裹它的功能(){},防止自執行

$.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); 
    } 
}); 
1

這裏是Dialoghttp://jsfiddle.net/Jams/hcTTH/

工作的例子有對SO一個問題,其可能適合你在這裏需要它是How to pass a parameter to jQuery UI dialog event handler?

另一種是這裏

Passing data to a jQuery UI Dialog

+6

然後這是一個愚蠢的,而不是一個答案。 –

+0

@ MR.OK:如果你能告訴我們你想傳遞論據的位置,那麼我可以試着給你一個正確的答案。 – jams

+0

你當然可以嘗試詳細闡述你的答案,幷包括一些細節,使它不僅僅是一些重複的鏈接。我個人發現你添加的兩個資源比操作要求的要複雜得多,我相信我們都可以從一個簡短的例子中受益? – jmort253