2010-08-20 98 views
1

我做得到,我們可以輕鬆地設置Close按鈕上的文字到一個變量,使用closeText選項如何在jQuery UI對話框中設置自定義按鈕(文本)?

$("#dialog").dialog({ 
    autoOpen: false, 
    modal: true, 
    closeText: btnCancel, // <----- 
    overlay: { 
     backgroundColor: '#000', 
     opacity: 0.5 
    }, 
    buttons: { 
     Close: function() { 
      $(this).dialog('close'); 
     } 
    } 
}); 

但如何對一個自定義名稱

這不工作:(

var btnResetMapping = 'Reset Mapping'; 

$("#dialog").dialog({ 
    autoOpen: false, 
    modal: true, 
    closeText: btnCancel, 
    overlay: { 
     backgroundColor: '#000', 
     opacity: 0.5 
    }, 
    buttons: { 
     Close: function() { 
      $(this).dialog('close'); 
     }, 
     btnResetMapping: function() { // <----- 
      // logic here 
     }, 
    } 
}); 

這可以被看作是怪異的問題,但我的變量,在代碼:

var btnResetMapping = '<%= Resources.PARbuttons.btnResetMapping %>'; 

女巫從環球資源文件加載正確,應用本地化的正確句子。

它工作正常使用:

$("#dialog").dialog({ 
    autoOpen: false, 
    modal: true, 
    closeText: btnCancel, 
    overlay: { 
     backgroundColor: '#000', 
     opacity: 0.5 
    }, 
    buttons: { 
     Close: function() { 
      $(this).dialog('close'); 
     }, 
     '<%= Resources.PARbuttons.btnResetMapping %>': function() { // <----- 
      // logic here 
     }, 
    } 
}); 

但我重構這個作爲將JavaScript文件放在它自己的位置(獨立文件),我想,不僅這樣做(單獨的HTML從Javascript - 它是一個商業Web應用程序,始終從INTRANET,從來沒有使用Internet btw)但理解它。

謝謝。

+0

精細。您嘗試將btnResetMapping中的字符串直接放入對象中? – Stephen 2010-08-20 12:31:50

回答

4

你可以用括號標記,像這樣:

var myButtons = { Close: function() { $(this).dialog('close'); } }; 
myButtons[btnResetMapping] = function() { ...logic here... }; 
$("#dialog").dialog({ 
    autoOpen: false, 
    modal: true, 
    closeText: btnCancel, 
    overlay: { 
     backgroundColor: '#000', 
     opacity: 0.5 
    }, 
    buttons: myButtons 
}); 

只要確保btnResetMapping是這個代碼運行前定義和你都設置:)

相關問題