2012-03-29 87 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