2010-10-30 68 views
0

添加到使用.live()的选择器的函数在Google Chrome浏览扩展中不能一致地工作。例如,我有一个看起来像这样的简单功能:jQuery .live()函数在谷歌浏览器扩展中不起作用

$("#sampleSelectID").live('click', function() { 
    alert("CLICKED!"); 
}); 

并且警报不会触发。如果我调试扩展没有javaScript错误。奇怪的是,如果我在调试器的这一行放置一个断点,它偶尔会触发,但即使这样也不一致。

在扩展中使用.live()和jquery有什么奇怪的问题吗?

我要补充一点,这些选择被应用于选择对象,其中生活在我的分机的弹出HTML文件中像这样的形式:

<li class="sampleClass"> 
     <form> 
     <select id="sampleSelectID"> 
     </select> 
     </form> 
</li> 
+3

定期点击处理程序是否有效,例如: '$( '#sampleCass')。点击(...)'?另外,我对你的选择器有点怀疑。 '#'是ID选择器; '.'是类选择器。你的意思是使用'$('。sampleClass')? – 2010-10-30 20:47:32

+0

谢谢马特 - 我的意思是ID选择器。我已经更新了原始问题以显示此内容,并且包含了适用于它们的对象的HTML语法。点击处理程序具有相同的结果。 – 2010-10-30 22:40:42

回答

0

我改变了“点击”收听“改变”这完美的工作。 Chrome浏览器扩展中似乎并没有在适当的时候发生“点击”,不过这种代码在Safari扩展中运行良好。无论如何,改变似乎更适合听。