有一些插件,例如flowplayer overlay,要求将一个“rel”属性放到HTML元素中以使其触发某些事件......问题是,当我动态创建具有该rel属性的元素时, ,他们不会触发它......对此有什么解决方案!?
答案 0 :(得分:2)
您应该使用 live()
方法触发动态创建元素的事件。
示例:强>
$('selector').live('click', function(){
// your code .........................
});
答案 1 :(得分:2)
自jQuery 1.4.2起,您还可以使用.delegate()
:
描述:根据一组特定的根元素,为现在或将来与选择器匹配的所有元素的一个或多个事件附加一个处理程序。
使用委托有时会导致代码比.live()
更容易理解。
答案 2 :(得分:0)
编辑插件,使其live()
处理事件。
答案 3 :(得分:0)
通常,jQuery live()函数可以解决这类问题。
您必须更改插件才能使用live()
,或在每次添加新内容时运行其初始化函数。
后一种方法在客户端可能是相当大的资源密集型并且不是很干净,但如果所讨论的元素数量不是太多,它通常是最简单的方法。