1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > jQuery 为动态添加的元素绑定事件

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

时间:2022-05-16 07:13:10

相关推荐

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");});

来源:/xiaozhi_/article/details/52184328

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。