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

前端之家收集整理的这篇文章主要介绍了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(….);

猜你在找的jQuery相关文章