【发布时间】:2013-07-27 21:23:30
【问题描述】:
这个真的让我很烦。我的控制台中出现未捕获错误:初始化前无法调用对话框上的方法;试图调用方法'close'
$( function() {
$('#search_all_notes_input').dialog({
autoOpen: false,
show: {
effect: "blind",
duration: 1000
},
hide: {
effect: "explode",
duration: 1000
}
});
/* Make the Search div a button and open dialog on click */
$( "#search_all_button" ).button().click(function() {
$( "#search_all_notes_input" ).dialog( "open" );
});
});
$('#submit_search_all_button').click( function () {
var searchText = $('#search_all_text').val();
var query = location.search.split('=');
var urlMrn = query[1];
formData = { mnr: urlMRN, search_text: searchText };
console.log(formData);
//$.post('note_search.php', formData, getMatchedNotes(data));
$(this).dialog('close');
});
有什么想法吗?我在对话框 div 中使用按钮元素,而不是自定义对话框按钮。此外,脚本是在我的 HTML 页面的最后加载的
【问题讨论】:
-
this在您的点击事件中指的是按钮本身,而不是模式/对话框,因此您不能在其上调用close。您需要在初始化对话框的 DOM 元素上调用close。您在open事件上执行此操作:$( "#search_all_notes_input" ).dialog( "open" );,当您希望关闭它时定位相同的元素。
标签: javascript jquery dialog initialization