对于由 jQuery 动态生成的元素,如用 jQuery 给元素添加 class,或者直接添加一对 p 标签,不能直接绑定常用的事件,如 click.因为这些元素属于动态生成,除非采用 onclick 内联的形式.那么解决办法是使用 live 和 on 事件方法. 注意,jquery 1.7.2 之后的版本不建议使用 live. on() 方法在被选元素及子元素上添加一个或多个事件处理程序. 自 jQuery 版本 1.7 起,on() 方法是 bind().live() 和 delegate(…
给Jquery动态添加的元素添加事件 来源:[http://wangqixia.diandian.com/post/2011-05-10/6597866] 我想很多人都会向我一样曾经 被新元素的事件绑定困惑很久也就是在页面加载完成后给元素绑定了事件,但又新增加的元素上却没有绑定任何事件. js的事件监听跟css不一样,css只要设定好了样式,不论是原来就有的还是新添加的,都有一样的表现.而事件监听不是,你必须给每一个元素单独绑定事件. 常见的例子是处理表格的时候.每行行末有个删除按钮,点了这个能…
原文地址:给Jquery动态添加的元素添加事件作者:小飞侠 我想很多人都会向我一样曾经 被新元素的事件绑定困惑很久也就是在页面加载完成后给元素绑定了事件,但又新增加的元素上却没有绑定任何事件. js的事件监听跟css不一样,css只要设定好了样式,不论是原来就有的还是新添加的,都有一样的表现.而事件监听不是,你必须给每一个元素单独绑定事件. 常见的例子是处理表格的时候.每行行末有个删除按钮,点了这个能够删除这一行. <table> <tbody> <tr> <td…
我们可以通过 $(document).on('click', '#xxx', callback) 这种形式解决. 原因,一般情况下,我们是通过 $('#xxx').click(callback) 这种形式去绑定,这种绑定之所以生效是因为,我们程序加载 $(function(){}) 的时候绑定了回调,而动态添加上去的,我们并没有去绑定. 所以动态添加的元素,点击的时候并不会触发我们想要的效果.但是实际上,在我们点击的时候,还是产生了点击事件,只是这个事件没有被我们的预期回调处理,因为我们的回调没…
<!-- Copyright 2017-10-27, Jachin QQ: 381558301 Email: 381558301@qq.com 请看看你们的版本并对号入座: jquery1.6版本以下都不支持on委托事件 jquery1.3 至 jQuery1.8版都支持live委托事件 jquery1.9 以后的版本不支持live委托事件,但是on事件可以替代live jquery1.3版本以下的(不包括jquery1.3),是时候更新你的jquery版本了.因为 无解无解无解无解无解无解 如…
假设我们点击li标签,弹出他的文本,如果是动态添加的li,点击是没有效果的,压根弹不出来文本. 下面博主分享一下为动态添加的元素绑定事件的三种方法,网上一般都是两种,我在这里多增加了一种. 事件案例: <ul id="ul1"> <li><a href="">世界上第三种电梯诞生了,居然是中国人发明的!</a></li> <li><a href="">电视名人辱骂…
今天发现jQuery对动态添加的元素不触发事件,比如blur.click事件等 参考文章证明了我的结论,并给出了原因及解决方案 原因:程序找不到动态添加的节点. 解决方案:在绑定父元素后的子元素 $('父元素').on('click','动态的子元素',function(){}); 20180822:今天发现一个元素要绑定两个点击事件(一个父元素一个子元素),先后顺序不能控制 于是化繁为简,在元素后面加了onclick事件,事件优先级onclick>click>on()(@参考博客).…
"+[jsonData[i].questitle.lenth>40?jsonData[i].questitle.substring(0,40)+"...":jsonData[i].questitle]+" 该代码是写在动态加载元素中的三目运算,直接在加载的时候判断是否超出指定字符数,再决定用哪种形式显示.这里要注意的是“[]”三目运算最外部的这个大括号是不能省也不能用“()”代替的. 当然,像这种溢出添加省略号的方法还有在jq,js中调用substring方法…
全选和取消全选 $("#quanxuan").click(function(){ $("input[name='picCheck']").prop("checked",this.checked); }); $("#picList").on('click','input',function(){ console.log($("input[name='picCheck']").length); $("…
$('div').on('click', 'button', function(e){console.log($(e.target).is(':button'))}); $('<button>After</button>').insertAfter('button'); 这样貌似更elegant~…