Кнопки диалога jQuery-UI - передают аргумент в функцию щелчка мыши - PullRequest
3 голосов
/ 05 августа 2011

Я новичок в разработке jQuery, и я использую диалоговое окно jQuery UI, чтобы показать свойства объекта (что угодно).

var $dialog = $('<div></div>')
    .html('This dialog will show every time!')
    .dialog({
        autoOpen: false,
        title: 'Properties'
    });

Итак, это диалог, и, скажем, у меня есть структура FOR, в которую я добавляю свойства (p-теги), а для некоторых из этих свойств я хочу кнопку.

var dialogHtml = "";
var dialog_buttons = {};
for (var key in d.properties){
    var str;
    var str = '<p>' + something + '</p>';

    if (condition){
        dialog_buttons[key] = function()
            { functionName(key); };
    }

    dialogHtml = dialogHtml + str;
}
$dialog.dialog( "option", "buttons", dialog_buttons );
$dialog.dialog('open');

И где-то еще у меня есть функция:

function functionName(key){
    // something something
}

Вот где у меня проблема: переменная ключа, которая передается функции ... когда кнопка вызывается, ключ является последним значением из итерации. Допустим, у нас есть ключи 1, 2, 3, 4, тогда при нажатии кнопки параметр ключа будет 4.

Я хочу, чтобы при нажатии кнопки в диалоговом окне какая кнопка была нажата .

Кто-нибудь может мне помочь?

Спасибо!

1 Ответ

2 голосов
/ 05 августа 2011

Использование данных события из события щелчка (см. Здесь)

$('#btn').click(function(e) {
  functionName(e.target);
});

Объяснение Event.Target

...