javascript绑定工作但不活

时间:2012-04-23 13:24:48

标签: jquery

function OnIframeContentLoads(){        
  $("#iframe")
    .contents()
    .find(".text")
    .live({ 
      click: OpenSingleImageEditor, 
      mouseover: function () { HighLight(this) }, 
      mouseout: function () { OffLight(this);} 
    });    
}   

当我使用.bind()绑定事件时,它的工作原理,但是像上面代码中的live()一样,它不起作用。这里的问题是什么?

3 个答案:

答案 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) )

http://api.jquery.com/on/

.on()方法将事件处理程序附加到jQuery对象中当前选定的元素集。从jQuery 1.7开始,.on()方法提供了附加事件处理程序所需的所有功能。有关从旧的jQuery事件方法转换的帮助,请参阅.bind(),. delegate()和.live()。要删除与.on()绑定的事件,请参阅.off()。要附加仅运行一次然后自行删除的事件,请参阅.one()