ajax得到的数据拼接
esub+="<li class='chapter_li'>
<p class='chapter_title'><s class='fontIcon sicon'></s>"+etitle+"</p>
<ul class='chapter_section' style='display: none'>"+tsub+"</ul>
</li>";
$(".chapter").html(esub);
//然后在ready()中写这段代码
$(".chapter_title").on("tap",function(){
var check=$(this).css("display");
if(check=="none"){
$(this).next().css("display","block");
$(this).children("s").css("content","\ea41");
}
else if(check=="block"){
$(this).next().css("display","none");
$(this).children("s").css("content","\ea43");
}
});
项目打开后无法执行,其他页面定义的标签绑定事件就没问题不知该如何解决
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
事件是需要绑定在元素上的,当你的内容是后加载的情况下就必定会发生,但是如果你把事件绑定在body上,然后去选择元素则不一样。具体没太研究,求大神说下原理
1.$(".chapter").on("click",".chapter_title",function(){
})
元素是后加载的,不要直接绑定在元素上,最好绑定在已经加载的父元素上。
2.jquery本身是没有tap事件的吧,是在jquery mobile里头的。楼主加载jquery mobile了么?
没有报错信息和逻辑代码,大概猜测是因为你在ready中执行,而ajax异步请求回来时还没有生成节点,建议用事件代理
我也遇到过,我不是搞前端的,具体原因我也不太清楚,但是我在ajax里面又绑定了一次就可以了。不过我觉得应该是你的那个绑定事件应该是执行了在你ajax数据生成之前,所以ajax生成时候没有绑定到事件。我也是很懵懂,大神勿喷