Аз съм начален jQuery dev и използвам диалоговия прозорец на jQuery интерфейса, за да покажа свойства на обект (каквото и да е).
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 за отговор № 1Използване на данните от събитието от събитието щракване (виж тук)
$("#btn").click(function(e) {
functionName(e.target);
});