html页面js新加html元素js事件无效

如图,在有写点击事件的时候写在html页面里的元素点击有效果
如图,加载更多后,加载出来的元素点击没有效果
html

原先js代码

$(" .trading-terminal .item-sel ").click(function(){

    var $ul = $(this).parent("li").find(".item-center").css("display");

    $(this).parent("li").toggleClass("show");

    $('.Position').find('li').removeClass("show");

    if($ul=="none"){ 

    $(this).parent("li").addClass("show");

    }else{

        $(this).parent("li").removeClass("show"); 

    }

});

解决办法:

可以用 jQuery 事件 - delegate() 方法;


定义和用法

delegate() 方法为指定的元素(属于被选元素的子元素)添加一个或多个事件处理程序,并规定当这些事件发生时运行的函数。

使用 delegate() 方法的事件处理程序适用于当前或未来的元素(比如由脚本创建的新元素)。

语法

$(selector).delegate(childSelector,event,data,function)

参数描述


如何使用 delegate() 方法向尚未创建的元素添加事件处理程序

自己的实例:代码

$("body").delegate('.trading-terminal .item-sel',"click",function(){

    var $ul = $(this).parent("li").find(".item-center").css("display");

    $(this).parent("li").toggleClass("show");

    $('.Position').find('li').removeClass("show");

    if($ul=="none"){ 

    $(this).parent("li").addClass("show");

    }else{

        $(this).parent("li").removeClass("show"); 

    }

});


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第一章 入门 基本功能:访问和操作 dom 元素,控制页面样式,对页面的事件处理,与ajax完美结合,有丰富的插件...
    X_Arts阅读 4,673评论 0 2
  • //------------------------- 第一章 认识JQuery ----------------...
    米塔塔阅读 4,068评论 0 9
  • 本篇收录了一些面试中经常会遇到的经典面试题以及自己面试过程中遇到的一些问题,并且都给出了我在网上收集的答案。马上就...
    菲菲菲菲妞阅读 4,455评论 0 3
  • 昔日儿子还是在眼皮底下不停晃悠的小不点,今日却坐进高三的教室,这个过程好像在一瞬间完成。但既然来临,那么我就要坦然...
    在路上健康是福阅读 1,222评论 0 0
  • nginx服务器请求限制模块 Nginx限制IP并发数与下载速度 nginx实现防盗链 http://www.ji...
    散装咖啡阅读 1,768评论 0 0