【发布时间】:2013-02-14 02:49:26
【问题描述】:
这是我正在使用的代码:
jQuery(document).ready(function($) {
$('.addNew').click(function(event) {
event.preventDefault();
openEditor(event);
}); /* END ADD CLICK */
$('.editLink').click(function(event) {
event.preventDefault();
openEditor(event);
}); /* END EDIT CLICK */
/* DEFINE THE EDITOR OPEN LATER */
$('.viewer').dialog({
fullscreen: true,
show: "pulsate",
width: $(window).width()-20,
height: $(window).height(),
autoOpen: false
}); /* END OPEN EDITOR */
}); /* END DOCUMENT READY */
function openEditor(event) {
jQuery(document).ready(function($) {
$('.viewer').load(window.location.pathname + 'edit.php');
var x =event.pageX - ( $(document).scrollLeft() - 100 );
var y =event.pageY -$(document).scrollTop();
$('.viewer').dialog('open');
}); /* END DOCUMENT READY */
} /* END OPENEDITOR FUNCTION */
对话框第一次打开得很好,但如果我通过单击关闭按钮或点击退出来关闭对话框,它不会第二次打开。这是我在控制台中收到的错误消息:
TypeError: $(...).dialog is not a function
[Break On This Error]
$('.viewer').dialog('open');
我最初没有使用 autoOpen: false ,我认为这是问题所在,但是当我改用这种方式时,它仍然给出了同样的错误。
有什么想法吗?
更新:
我一直在挖掘更多,它似乎是由 $('.viewer').load('filename');线。出于某种原因,它只允许查看器打开一次。
【问题讨论】:
-
你的按钮是动态生成的吗?
-
否,但查看器中的内容是通过 Ajax 调用加载的,我认为这可能会导致问题。这几乎就像 ajax 加载页面中的 jQuery 正在干扰其他内容。