javascript - 给jquery ajax 拼接的html标签绑定一个tap事件总是无法点击?
怪我咯
怪我咯 2017-04-10 15:10:17
[JavaScript讨论组]

ajax得到的数据拼接

esub+="
  • "+etitle+"

      "+tsub+"
  • "; $(".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"); } });

    项目打开后无法执行,其他页面定义的标签绑定事件就没问题不知该如何解决

    怪我咯
    怪我咯

    走同样的路,发现不同的人生

    全部回复(4)
    伊谢尔伦
    方法一:
    $("body").on("click",".chapter_title",function(){
         // 干什么
    })
    方法二:
    settimeOut(function(){
        // 加入事件 
    },0)
    

    事件是需要绑定在元素上的,当你的内容是后加载的情况下就必定会发生,但是如果你把事件绑定在body上,然后去选择元素则不一样。具体没太研究,求大神说下原理

    黄舟

    1.$(".chapter").on("click",".chapter_title",function(){
    })
    元素是后加载的,不要直接绑定在元素上,最好绑定在已经加载的父元素上。
    2.jquery本身是没有tap事件的吧,是在jquery mobile里头的。楼主加载jquery mobile了么?

    黄舟

    没有报错信息和逻辑代码,大概猜测是因为你在ready中执行,而ajax异步请求回来时还没有生成节点,建议用事件代理

    阿神

    我也遇到过,我不是搞前端的,具体原因我也不太清楚,但是我在ajax里面又绑定了一次就可以了。不过我觉得应该是你的那个绑定事件应该是执行了在你ajax数据生成之前,所以ajax生成时候没有绑定到事件。我也是很懵懂,大神勿喷

    热门教程
    更多>
    最新下载
    更多>
    网站特效
    网站源码
    网站素材
    前端模板
    关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
    php中文网:公益在线php培训,帮助PHP学习者快速成长!
    关注服务号 技术交流群
    PHP中文网订阅号
    每天精选资源文章推送
    PHP中文网APP
    随时随地碎片化学习

    Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号