AJAX中的链接HTML响应在单击后丢失onclick

时间:2012-02-02 05:02:38

标签: javascript jquery overlay

我有一个包含来自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 }
    });
}

感谢任何帮助,有任何问题请不要犹豫,问:)

1 个答案:

答案 0 :(得分:0)

我会使用Firefox + Firebug来监控覆盖打开和关闭时是否正在触摸(移动,更改)任何A标签。看它是否保持相同的位置;最重要的是,在叠加层消失后检查它是否仍然具有onclick值。检查onLoad和onClose中的“do somethings”,查看可能对该链接执行某些操作的任何代码。此外,检查JS错误,特别是在关闭覆盖期间/之后 - 有时错误会中断进程,使不相关的事情处于意外状态,从而导致无关的问题。