jQuery中给动态添加的代码绑定添加事件

在jquery推出新版本,使用.on()以前,我们会用.live()来为动态添加的代码绑定事件,但是现在jQuery用.on()替代了.live()

先看个.live()实例

 代码如下 复制代码

 $(".RemoveLink").live("click",function () {
                // Get the id from the link
                var recordToDelete = $(this).attr("data-id");
                alert("即将删除" + recordToDelete);
                if (recordToDelete != '') {
                    // Perform the ajax post
                    $.post("/BS_Parameter/Delete", { "id": recordToDelete },
                        function (data) {
                            $("#tb_row_" + data.returnID).fadeOut("slow");
                            $("#AddedParamet").append("<p>删除成功" + data.returnID + "</p>");
                        });
                }
            });

使用live便可轻松做到,如:

 代码如下 复制代码

 function CreateTR(data) {
            var myTR = "<tr id='tb_row_"+data.returnID+"'><td>" + data.name + "</td><td>" + data.description + "</td><td><a href='#' class='RemoveLink' data-id='" + data.returnID + "'>删除</a></td>";
            return myTR;
        }

$("#RequestParameters").append(CreateRequestTR(data));

这样添加进去的元素也会被绑定上事件处理函数

有不少同行因为这个原因而使jQuery停留在了1.7.X这个版本之前,其实我们如果需要达到和.live()相同的效果,我们可以使用下面这个方法

 代码如下 复制代码

$(document).on("各种事件(如click、mousemove...)","事件对象(比如我点击class为.close的div,那么这里就是.close)",function(){
    //事件处理中心
})

这样我们依然可以对程序动态添加的代码进行js事件绑定

示例:

 代码如下 复制代码

<!-- 比如下面这段代码是通过js添加,而不是默认就有的 -->
<div class="del_this"></div>
//点击删除该对象
$(document).on("click",".del_this",function(){
 $(this).remove();
})

总结,使用on()之后发现非常的方便好了哦,并且代码也简单了一些。

live(type,[data],fn) 给所有匹配的元素附加一个事件处理函数,即使这个元素是以后再添加进来的

$("a").live("click",function(){alert("ok");});

on(events,[selector],[data],fn) 在选择元素上绑定一个或多个事件的事件处理函数

差别:

.live()则是通过冒泡的方式来绑定到元素上的。更适合列表类型的,绑定到document DOM节点上。和.bind()的优势是支持动态数据。

.on()则是最新的1.9版本整合了之前的三种方式的新事件绑定机制

时间: 2024-09-08 19:38:26

jQuery中给动态添加的代码绑定添加事件的相关文章

jQuery支持动态参数将函数绑定到事件上的方法

这篇文章主要介绍了jQuery支持动态参数将函数绑定到事件上的方法,实例分析了两种支持动态参数的函数绑定技巧,需要的朋友可以参考下     本文实例讲述了jQuery支持动态参数将函数绑定到事件上的方法.分享给大家供大家参考.具体分析如下: 下面的js代码提供了两种方法用于绑定函数到事件,其中方法二可以传递动态参数,非常实用 ? 1 2 3 4 5 6 7 8 9 //方法一 $('#foo').click(function(event) { alert('User clicked on "fo

jQuery支持动态参数将函数绑定到事件上的方法_jquery

本文实例讲述了jQuery支持动态参数将函数绑定到事件上的方法.分享给大家供大家参考.具体分析如下: 下面的js代码提供了两种方法用于绑定函数到事件,其中方法二可以传递动态参数,非常实用 //方法一 $('#foo').click(function(event) { alert('User clicked on "foo."'); }); //方法二, 支持动态传参 $('#foo').bind('click', {test1:"abc", test2:"

利用jQuery中的ajax分页实现代码_jquery

本文实例讲解了用jQuery中的ajax分页相关代码,分享给大家供大家参考,具体内容如下 把分页封装到一个jsp里,那么大家就可以通过include的方式引入分页的页面这里起名为page_ajax.jsp 本人封装后,使用者需要在页面中引入page_ajax.jsp,并且在查询列表的时候,点击按钮,调用自定义的方法,如myFunction(),在这个方法里头,调用自己拓展的jquer方法,$.pageAjax(url,functionName,showDIv);这里的url是你要请求的ajax的

基于Jquery实现表格动态分页实现代码_jquery

当页面点击分页图标时,程序会自动去后台获取对应页数的记录. 关键代码如下: 需要引入的css和js文件有: 复制代码 代码如下: <link rel="stylesheet" type="text/css" href="<%=basePath %>css/theme/default/css/jpage.css"></link> <link ID="skin" rel="sty

详解jQuery中自定义插件的实例代码

jQuery自定义插件 jQuery是一个功能强大的库,提供了开发JavaScript项目所需的所有核心函数.然而,有时候我们还是需要使用自定义代码来扩展这些核心函数来提高开发效率. jQuery库是为了加快JavaScript的开发速度而设计的,通过简化编写JavaScript的方式,减少代码量. jQuery编写插件有两种方式 1.添加jQuery对象级别的插件,原理是给jQuery类添加方法. 写法如下: (function($){   $.fn.extend({     函数名:func

jQuery 中使用JSON的实现代码_jquery

JSON 的格式说明可以在可以这里看到,非常详细,还是中文的. JSON 格式说明 需要特别注意的是,在 JSON 中的属性名是需要使用引号引起来的.  jQuery 中使用 JSON jQuery 是现在使用广泛的脚本库,那么,在 jQuery 中如何使用 JSON 呢? 解析 JSON 在 jQuery 中已经提供了对于解析 JSON 的内在支持, jQuery.parseJSON 函数提供了解析的支持,详细的说明见这里. 复制代码 代码如下: var obj = jQuery.parseJ

jQuery中读取json文件示例代码_jquery

json文件是一种轻量级的数据交互格式.一般在jquery中使用getJSON()方法读取. 复制代码 代码如下: $.getJSON(url,[data],[callback]) url:加载的页面地址 data: 可选项,发送到服务器的数据,格式是key/value callback:可选项,加载成功后执行的回调函数 1.首先建一个JSON格式的文件userinfo.json 保存用户信息.如下: 复制代码 代码如下: [ { "name":"张国立", &qu

Jquery中对数组的操作代码_jquery

而在Jquery中则使用$.map().$.each()来操作数组: 首先是普通的数组(索引为整数的数组): 复制代码 代码如下: $.map(arr,fn); 对数组中的每个元素调用fn函数逐个进行处理,fn函数将处理返回最后得到的一个新的数组 var arr = [9, 8, 7, 6, 5, 4, 3, 2, 1]; var newarr = $.map(arr, function(item) {return item*2 }); alert(newarr); $.each(array,f

JQuery中对Select的option项的添加、删除、取值_jquery

jQuery获取Select选择的Text和Value: 复制代码 代码如下: $("#select_id").change(function(){//code...}); //为Select添加事件,当选择其中一项时触发 var checkText=$("#select_id").find("option:selected").text(); //获取Select选择的Text var checkValue=$("#select_id