【问题标题】:jQuery binds fail after the load function加载函数后jQuery绑定失败
【发布时间】:2018-01-26 11:41:57
【问题描述】:

我正在使用库 intercooler.js 执行 AJAX 请求,但我尝试使用本机 AJAX 并得到相同的结果。

我提交登录表单(它是模态的):

<form id="loginForm" role="form" class="login-form" ic-post-to="{% url 'login' %}" ic-on-error="handleFormError(xhr,'loginForm');" ic-on-success="deleteAllErrors('loginForm');$('#loginModal').modal('hide');update('navbar');" data-toggle="validator">{% csrf_token %}...</form>

当“ic-on-success”(成功请求)时,我使用 id="navbar"(标题链接)刷新 div。这个函数会导致 jQuery 停止工作:

update('navbar');

function update(idDom){
   $('#update-' + idDom).load(' #' + idDom);
}

好的,现在 id="navbar"(标题链接)的 div 得到了刷新,并且出现了注销链接,但这不再起作用了:

<div id="update-navbar">    
   <div id="navbar" class="collapse navbar-collapse">   
      <a class="pointer" ic-get-from="{% url 'logout' %}" ic-on-success="update('navbar');"><i class="lnr lnr-exit"></i> Cerrar sesi&oacute;n</a>
   </div>
</div>

这就像 jQuery 停止工作。我再说一遍,我也尝试过使用原生 AJAX 和 $("#target").click(function() {...,但绑定不起作用。

我必须按 F5 刷新整个页面,以便注销链接再次起作用。

【问题讨论】:

    标签: jquery ajax django


    【解决方案1】:

    Bind events on dynamic created elements inserted by AJAX (check box)

    试试

    $(document).on('click',"#target", function() {...

    【讨论】:

    • 这是可行的,但我必须对所有组件都这样做吗?所有按钮和标签中有超过 50 个 AJAX 定义..... :S 太原始了。如果我的组件是一个链接,我必须手动重新实例化它吗?我的一些 a 标签是这样的:&lt;a class="pointer" ic-get-from="{% url 'logout' %}" ic-on-success="update('navbar');"&gt;&lt;i class="lnr lnr-exit"&gt;&lt;/i&gt; Cerrar sesi&amp;oacute;n&lt;/a&gt;
    猜你喜欢
    • 1970-01-01
    • 2016-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多