我正在为一些 HTML 做一个 Ajax GET,然后通过以下方式填充一个 div:
$(theDiv).html(theHtml)
这个 HTML 包含一个按钮(比如说“按钮 A”),它通过以下方式显示一个 jQuery 对话框:
$(selector).dialog({modal:true});
单击“按钮 A”时,每次都会显示对话框。但是,在对话框中,我包含了一个取消链接。取消链接触发:
$(selector).dialog("close")
我注意到大多数时候它都很好用。但是,如果我在 Ajax GET 完成后立即快速单击“按钮 A”,取消链接将不会关闭对话框!对话框右上角的“X”按钮始终有效,但“取消”按钮是我正在努力解决的问题。
我已经尝试了许多不同的方法来让这个工作无济于事。这发生在 Firefox 3.5.9 和 IE 7 中。如果我使用 Firebug 并在语句后放置断点.dialog('close');
,那么我注意到屏幕上的背景颜色从灰色变为白色,但对话框仍然打开。我什至尝试通过执行以下操作来强制解决问题:
$(selector).css("display", "none");
无济于事。
无论出于何种原因,Ajax GET 第一次触发时,我从来没有遇到过这个问题......所以当我第一次访问页面并执行 GET 时,它每次都有效。但是,如果我留在页面上并在 DOM 仍在加载时继续触发 GET,它可能只有 50% 的时间有效。
我非常感谢任何人愿意提供的帮助!
谢谢,
安迪