0

的js代碼是在這裏添加單擊功能不起作用

var s = "<a id='clickmodifybasic'>修改</a>" 

    $("#basicinfoerrordlg").html(s); 
    $("#clickmodifybasic").click(modifybasicinfo); 
    $("#basicinfoerrordlg").dialog("open"); 
    return false; 

它在Chrome很好地工作,但在IE8不好。 我以前有類似的錯誤。 我從IE8的開發工具中獲得以下代碼。 <A id=clickmodifybasic jQuery1289741833331="94">修改</A>

+0

請詳細說明「IE8不好」 - 當您點擊IE8中的鏈接時會發生什麼?開發人員工具中的代碼並不相關,jQuery使用「即時代碼」綁定事件,您不會在HTML代碼本身中看到它。 – 2010-11-14 13:57:20

+0

什麼是'modifybasicinfo'?這是一個功能嗎? – 2010-11-14 13:58:08

回答

0

假設您已經定義了modifyBasicinfo()函數,請嘗試此代碼。

var s = "<a id='clickmodifybasic'>修改</a>"; 

    $("#basicinfoerrordlg").html(s); 
    $("#clickmodifybasic").click(function() { modifybasicinfo(); }); 
    $("#basicinfoerrordlg").dialog("open"); 
    return false; 

不要忘記你的「;」變量聲明後的分隔符,我已經爲你添加了這個。 希望這有助於。

+0

沒有必要對函數進行匿名封裝,這隻會導致額外的開銷*和*丟失this(上下文)。 – 2010-11-14 14:02:36

+0

感謝您指出這一點,我自己對JS很感興趣。 – Kieran 2010-11-14 14:03:43

0

@WangXing,我剛纔在IE8測試與此完全相同的代碼:

<script type="text/javascript"> 
function ModifyBasicInfo() 
{ 
    alert("clicked"); 
} 

$(function() { 
    var s = "<a id='clickmodifybasic'>קישור</a>" 
    $("#basicinfoerrordlg").html(s); 
    $("#clickmodifybasic").click(ModifyBasicInfo); 
}); 
</script> 
<div id="basicinfoerrordlg"></div> 

它能正常工作,然後點擊鏈接時,所以這個問題必須與你使用的對話框插件警報出現。這是什麼插件?你能發佈鏈接,以便我們可以重現此行爲?

+0

他使用的是jQuery UI,而且我已經使用過像之前展示過的代碼,並且工作正常,所以我很懷疑它是如此。 – Juan 2010-11-14 16:41:55