• jQuery 为动态添加的元素绑定事件


    在使用jquery的方式为元素绑定事件时,我经常使用bind或者click,但这只能为页面已经加载好的元素绑定事件。像需要用ajax的方式请求远程数据来动态添加页面元素时,显然以上几种绑定事件的方式是无效的,具体写法如下图。

    $(selector).bind(event,data,function)
    $(selector).click(function)
    
    $("#searchMoveVideoResult ul li").bind("click",function(){
    	$(this).css("border","5px solid #000");
    });
    $("#searchMoveVideoResult ul li").click(function(){
    	$(this).css("border","5px solid #000");
    });
    

      

    为动态添加的元素绑定事件有以下几种方式:

    1.delegate():向匹配元素的当前或未来的子元素附加一个或多个事件处理器

    $(selector).delegate(childSelector,event,data,function)
    
    示例:
    
     $("#searchMoveVideoResult").delegate("ul li","click",function(){
        $(this).css("border","5px solid #000");
    });

    2.live():为当前或未来的匹配元素添加一个或多个事件处理器(jquery1.8版本以前推荐使用该方法;jquery1.8版本之后就不建议使用了,我试了下,也是无效的,所以高版本的jquery推荐使用on()方法绑定事件。)

    $(selector).live(event,data,function)
    
    $("#searchMoveVideoResult ul li").live("click",function(){
         $(this).css("border","5px solid #000");
    });

    3.on():适用于当前及未来的元素(比如由脚本创建的新元素)

    $(selector).on(event,childSelector,data,function,map)
    
    $("#searchMoveVideoResult").on("click","ul li",function(){
    	$(this).css("border","5px solid #000");
    });
    

      来源:https://blog.csdn.net/xiaozhi_2016/article/details/52184328

  • 相关阅读:
    通过Logstash由SQLServer向Elasticsearch同步数据
    ELK +Nlog 分布式日志系统的搭建 For Windows
    Gulp 给所有静态文件引用加版本号
    Fluentdata详解
    jQuery Easy UI (适应屏幕分辨率大小)布局(Layout)
    什么是数据结构---算法
    WCF的学习之旅
    程序员必学之精华----软件工程
    译 .NET Core 3.0 发布
    Vue+Element UI 实现视频上传
  • 原文地址:https://www.cnblogs.com/fogwang/p/8670402.html
Copyright © 2020-2023  润新知