微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – 使用load()加载html页面后,jQuery单击事件处理程序不起作用

嗨我在索引页面上加载了几个html页面,具体取决于点击了什么链接.我有一个问题,链接有asocietted点击事件处理程序.似乎在jQuery加载html文件后,该 HTML中的链接没有点击事件处理程序绑定到他们.
这是我的代码

这是其中一个不起作用的链接的html:

<a href="#" id="NavContactPage" data-sectionId="Skills">skills</a>

这是与之相关的jquery代码

$("nav a,a.first_anchor,a#NavContactPage").click(function(){
    var id = $(this).attr("data-sectionId");
    var link = "load/" + id + ".html";

    $("div#Content").load(link,function(){
        $("section#" + id).fadeIn(); 
        if(id === "Portfolio"){
            $('div.slide').cycle('fade');
        }
        if(id === "Home"){
            $("#jcycleslider").cycle({
                fx: mtransition,easing: easing,before: onBefore,after: onAfter,speed: mpace,timeout: mnext,sync: msync,randomizeEffects:0,pager:'#jslider_nav'
            })
            $("#jslider_nav a").text("");
        }    
    })      
    return false;
})

我怎么解决这个问题?

解决方法

$(“selector”).click(…)仅将click事件的回调注册查询时jQuery可见的元素.因此,对于与此选择器匹配的新添加元素,将不会应用回调.

您需要再次将注释重新注册到新添加的元素,或者您需要使用:

$(document).on(‘click’,“nav a,#NavContactPage”,…);

不是以root身份使用文档,而是建议使用例如您将内容加载到root的元素,例如$(“div#Content”).on(….);

原文地址:https://www.jb51.cc/jquery/158829.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐