У меня есть jqGrid, который, когда пользователь редактирует строку, им нужно нажать кнопку, чтобы применить изменения. Эта кнопка должна создать диалоговое окно, которое должно вызывать вызов ajax с выбранной опцией.Диалоговое окно Javascript не открывается
Однако диалоговое окно никогда не открывается. Firebug остановится на контрольных точках внутри функции, которая ее создает, но никогда не делает того, что она должна.
function confirm_dialog(rowData){
$("#dialog").dialog({
modal:true,
buttons: {
"Yes": function(){
ajax_call(rowData, "yes");
$(this).dialog("close");
},
"No": function(){
ajax_call(rowData, "no");
$(this).dialog("close");
},
"Cancel": function(){
$(this).dialog("close");
}
}
});
}
function ajax_call(rowData, option){
$.ajax({
url: '{{django_base}}',
data: {'data':rowData, 'option':option},
type: 'POST',
error: function(){
window.alert("There was an error!");
},
success: function(){
window.alert("Changes made successfully!");
}
});
}
$(function(){
//...
baseGrid = new BaseGrid("#the-jqGrid", opts);
//...setting grid format
baseGrid.addButton("edit",
{ caption:'Confirm Changes', onClickButton:confirm_dialog() });
}
Я установил точку останова в начале confirm_dialog и ajax_call. Он попадет на разрыв confirm_dialog во время загрузки страницы, но не при нажатии кнопки. Разрыв в ajax_call никогда не достигается.
Просто ошибка копирования, она находится в производственном коде. – SirDeimos