AJAX HTML响应中的链接在被点击后会失去点击



我有一个包含AJAX请求数据的元素。AJAX数据是从另一个页面返回的。元素中返回的数据包含一个链接,单击该链接将打开一个jQuery覆盖。onclick事件被附加到来自外部数据的链接(a 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 }
    });
}

如有任何帮助,请随时询问:)

当覆盖打开和关闭时,我会使用Firefox+Firebug来监控A标记是否被任何东西触摸(移动、更改)。看看它是否保持相同的位置;最重要的是,在覆盖消失后,检查它是否仍然具有onclick值。在onLoad和onClose中检查你的"dosomethings"是否有任何可能对该链接做了什么的代码。此外,检查JS错误,尤其是在关闭覆盖期间/之后-有时错误会中断过程,使不相关的事情处于意外状态,从而导致不相关的问题。

相关内容

  • 没有找到相关文章

最新更新