本文实例讲述了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)
目前大多数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"); });
3. on()
:适用于当前及未来的元素(比如由脚本创建的新元素)
$(selector).on(event,childSelector,data,function,map)
试验了下,大多数版本的jquery都是支持这个方法的,也是我比较喜欢使用的方法。
$("#searchMoveVideoResult").on("click","ul li",function(){ $(this).css("border","5px solid #000"); }); //下面这样写就是错的了,一定要把动态添加的元素放到on()方法里面才行。 $("#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="/UploadFiles/2021-04-02/'+act_s[i].image+'">更多关于jQuery相关内容感兴趣的读者可查看本站专题:《jQuery常见事件用法与技巧总结》、《jQuery常用插件及用法总结》、《jQuery操作json数据技巧汇总》、《jQuery扩展技巧总结》、《jQuery常见经典特效汇总》及《jquery选择器用法总结》
希望本文所述对大家jQuery程序设计有所帮助。
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
暂无评论...
更新日志
2024年11月27日
2024年11月27日
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]