2010-08-20 3 views
1

я получить, что мы легко можем установить текст в переменную с Close кнопку, используя closeText вариантКак настроить пользовательские кнопки (текст) в диалоговом окне пользовательского интерфейса jQuery?

$("#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 %>'; 

ведьма правильно загружена из файла Global Resources , с правильным предложением для применяемой локализации.

работает нормально:

$("#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 - это бизнес-приложение для бизнеса, которое всегда загружается из INTRANET, никогда не используя интернет-кстати), но чтобы понять это.

спасибо.

+0

Fine. Вы пытаетесь поместить строку внутри btnResetMapping непосредственно в объект? – Stephen

ответ

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 определяется перед тем этот код работает, и вы все готово :)

Смежные вопросы