Я использую класс модель Резига в (http://ejohn.org/blog/simple-javascript-inheritance/) и есть этот вопрос:Javascript модель класса: вызов функции класса из диалогового определения
В классе ниже я строй удаления диалога. Когда нажата кнопка «Да», я хотел бы выполнить функцию handleDeleteItem
. Как мне это сделать? Я не могу использовать «this.handleDeleteItem», поскольку «this» относится к диалоговому окну.
var bItem = Class.extend({
init: function (type) {
this.id = type + "-" + getNewId();
},
registerDelete: function() {
var itemId = this.id;
// Build Delete Dialog
var deleteDialog = '<div id="' + itemId + '-delete-dialog" title="Delete Item?"><p><br/><span class="ui-icon ui-icon-alert" style="float: left; margin: 0 7px 20px 0;"></span>Are you sure you want to delete this item?</p></div>';
// Append dialog
$('#b-main').append(deleteDialog);
// Confirmation dialog
$('#' + itemId + '-delete-dialog').dialog({
buttons : {
"Yes" : this.handleDeleteItem(),
"No" : function() {
$(this).dialog("close");
}
}
});
$("#dialog").dialog("open");
},
handleDeleteItem: function() {}
});
Итак, если 'this.handleDeleteItem' не разрешен, то' bItem.handleDeleteItem' в порядке? В любом случае '.handleDeleteItem()' возвращает undefined, что означает, что вы по существу привязываете «Да» к нулю. – Brian