2012-03-29 88 views
1

我有一段代码是使用xforms和dojo动态生成的。jQuery委托()不能正常工作ie IE

的jQuery以下块工作正常,在Chrome和Firefox,但不是在IE:

的jQuery( 'premiumBlock ')委托('。dijitCheckBoxInput', '点击',函数(){ // do something });

该代码将然后“做东西”,这是在Chrome和Firefox,但不是IE浏览器正常工作。

几乎所有东西都是动态创建的,包括类名。

我看过其他类似的SO查询,其中大部分建议已经改变.delegate()来.live()或。对()。这些建议不起作用 - 它只会改变事件将冒泡的祖先。

任何想法,为什么这可能无法正常工作,更具体地说,我如何使它工作?

感谢

+0

什么版本的IE? – Magrangs 2012-03-29 13:37:11

+0

您确定您点击复选框而不是复选框的标签元素吗?在复选框中使用点击事件在IE中通常是必要的,但是一个恼人的副作用是它像一个点击事件一样工作 - 如果你不点击绑定元素本身,事件不会触发,即使复选框发生改变。 – zetlen 2012-03-29 14:17:05

+0

我在ie8上遇到了同样的情况。 – 2014-09-17 08:17:13

回答

0

你可以尝试这样的:

$('#somecontainer').ajaxComplete(function() { 
    $(".premiumBlock").delegate(".dijitCheckBoxInputat","click",function() { 
     //do something 
    }); 
}); 

这应该使它在IE浏览器也

+0

合乎逻辑的尝试,但这在我的情况下不起作用 – Harry 2012-03-29 13:59:50