function OnIframeContentLoads(){
$("#iframe")
.contents()
.find(".text")
.live({
click: OpenSingleImageEditor,
mouseover: function () { HighLight(this) },
mouseout: function () { OffLight(this);}
});
}
当我使用.bind()绑定事件时,它的工作原理,但是像上面代码中的live()一样,它不起作用。这里的问题是什么?
答案 0 :(得分:5)
这是.live
的已知问题,请改用<{3}}
来自文档
不支持链接方法。例如,$(“a”)。find(“。offsite, .external“)。live(...);无效且不能按预期工作。
$("#iframe").on('click', '.text', function(){ ... });
答案 1 :(得分:1)
我注意到.live有一些非常具体的限制,不适用于.bind。特别是,它不能使用任何类型的缓存选择器。我认为这可能适用于.find()/。contents()。
请改为尝试:
$("#iframe .text").live({ click: function(){ console.log('clicked') } })
答案 2 :(得分:0)
你想要使用jquery on()方法:
$(element).on( events [, selector] [, data], handler(eventObject) )
.on()方法将事件处理程序附加到jQuery对象中当前选定的元素集。从jQuery 1.7开始,.on()方法提供了附加事件处理程序所需的所有功能。有关从旧的jQuery事件方法转换的帮助,请参阅.bind(),. delegate()和.live()。要删除与.on()绑定的事件,请参阅.off()。要附加仅运行一次然后自行删除的事件,请参阅.one()