我有一个包含来自AJAX请求的数据的元素。 AJAX数据从另一页返回。元素中返回的数据包含一个链接,单击该链接可打开jQuery叠加层。 onclick事件附加到外部数据的链接(onclick =“...”),覆盖功能在我的主页上。
这一切都正常,直到用户点击打开叠加层的链接。关闭叠加层时,链接将被禁用,失去其onclick事件,然后无法重新打开叠加层。
这是一个聚焦问题还是以某种方式必须将事件重新绑定到该链接?我不确定这里发生了什么,或者如何解决它,我希望有些善良的人可以帮助我。
这是将外部数据加载到元素中的原因:
function load_upload_queue() {
$.ajax({ type : 'GET', url : myDomain,
dataType : 'html',
success : function(data) { $('#myElement').html(data); },
error : function() { // do something }
});
}
这是元素内部的链接,它来自上面的AJAX调用:
<a onclick="show_error_overlay(id)">Show Errors</a>
这是我的开放式叠加功能,位于主页面上:
function show_error_overlay(token) {
$("#show_error_overlay").overlay({
mask: '#111111',
close: "a.closeOverlayBtn",
closeOnClick: false,
closeOnEsc: false,
load: true,
onLoad: function() { // do something },
onClose: function() { // do something }
});
}
感谢任何帮助,有任何问题请不要犹豫,问:)
答案 0 :(得分:0)
我会使用Firefox + Firebug来监控覆盖打开和关闭时是否正在触摸(移动,更改)任何A标签。看它是否保持相同的位置;最重要的是,在叠加层消失后检查它是否仍然具有onclick值。检查onLoad和onClose中的“do somethings”,查看可能对该链接执行某些操作的任何代码。此外,检查JS错误,特别是在关闭覆盖期间/之后 - 有时错误会中断进程,使不相关的事情处于意外状态,从而导致无关的问题。