Как установить пользовательские кнопки (текст) в диалоге jQuery UI? - PullRequest
1 голос
/ 20 августа 2010

Я понял, что мы легко можем установить текст кнопки Close в переменную, используя параметр closeText

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

, но как насчет пользовательского имени ? * 1008?*

это не работает: (

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, никогда не использует Интернет, кстати), но и понять его.

Спасибовы.

1 Ответ

4 голосов
/ 20 августа 2010

Вы можете использовать скобочные обозначения, например:

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

...