jQuery-为动态添加的元素绑定事件
来源:互联网 发布:最新中英文翻译软件 编辑:程序博客网 时间:2024/05/16 05:52
在使用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)
目前大多数jquery版本都可用,不过我一般不用它。
$("#searchMoveVideoResult").delegate("ul li","click",function(){$(this).css("border","5px solid #000");});
$("#searchMoveVideoResult").delegate("click","ul li",function(){$(this).css("border","5px solid #000");});看出它们的不同了吗,第二种写法是错误的,记住一定要把事件写在元素的后面。
2.live():为当前或未来的匹配元素添加一个或多个事件处理器
$(selector).live(event,data,function)
jquery1.8版本以前推荐使用该方法;jquery1.8版本之后就不建议使用了,我试了下,也是无效的,所以高版本的jquery推荐使用on()方法绑定事件。
$("#searchMoveVideoResult ul li").live("click",function(){ $(this).css("border","5px solid #000");});
$(selector).on(event,childSelector,data,function,map)
试验了下,大多数版本的jquery都是支持这个方法的,也是我比较喜欢使用的方法。
$("#searchMoveVideoResult").on("click","ul li",function(){$(this).css("border","5px solid #000");});
//下面这样写就是错的了,一定要把动态添加的元素放到on()方法里面才行。</span>
$("#searchMoveVideoResult ul li").on("click",function(){$(this).css("border","5px solid #000");});
4.onclick事件:动态添加数据时,就为元素绑定onclick事件
function searchMoveVideo(){$.ajax({type:"POST",url:"http://op.juhe.cn/onebox/movie/video",data:{"q":$("#moveVideo").val(),"key":"346f79df993776748b242236464d565d"},dataType:"JSONP",success:function(data){console.log(data);if(data.error_code=="0"){var result=data.result;console.log(result);var html=result.title+"<br>"+result.tag+"<br>"+result.act+"<br>"+result.year+"<br>" +result.area+"<br>"+result.dir+"<br>"+result.desc;html+="<br><img src='"+result.cover+"'/><br>";html+='<ul style="list-style: none; float: left;">';var act_s=result.act_s;for(var i=0;i<act_s.length;i++){html+='<li style="float: left;" <span style="color:#cc0000;">onclick="showSource(this);"</span>><a target="_bla nk"><img src="'+act_s[i].image+'"><br>'+act_s[i].name+'</a></li>';}html+='</ul>'$("#searchMoveVideoResult").html(html);}else{$("#searchMoveVideoResult").html(data.reason);}}}); }
0 0
- Jquery 为动态添加元素绑定事件
- jquery 为动态添加元素绑定事件
- jquery为动态添加的元素绑定事件
- jquery为动态添加的元素绑定事件
- jQuery-为动态添加的元素绑定事件
- jQuery-为动态添加的元素绑定事件
- jQuery-为动态添加的元素绑定事件
- jQuery动态添加的元素绑定事件
- jQuery-为动态添加的元素绑定事件(以及不重复添加新的内容)
- jQuery -- 如何为动态添加的元素绑定事件处理函数
- jQuery -- 如何为动态添加的元素绑定事件处理函数
- jQuery -- 如何为动态添加的元素绑定事件处理函数
- 使用 jQuery 为 AJAX 动态添加的 HTML 元素绑定事件
- jQuery给动态添加的元素绑定事件的方法
- jQuery给动态添加的元素绑定事件的方法
- jQuery给动态添加的元素绑定事件的方法
- jQuery给动态添加的元素绑定事件的方法
- jQuery 给动态添加元素绑定事件
- 哈夫曼编码
- 题目一:n个人叫m次.第m个人淘汰,重新开始,一直到最后一个人的问题(java)
- JZOJ 4679 种树【NOIP2016提高A组8.11】
- idea 加载不到 artifact
- Selenium浏览器之间转换
- jQuery-为动态添加的元素绑定事件
- 生成验证码
- 数据结构实验之查找三:树的种类统计
- PHP5中魔术方法
- jzoj 2542. 【NOIP2011模拟9.1】统计
- 如何让2个并列的div自动等高(不设高度)
- Java Web 初级程序员 -第6天学习内容:继承
- 2016.8.11初中部模拟赛总结
- 《深入理解Java集合框架》系列文章