0

下面的javascript代碼大約是我的php頁面的一半,我不能直接修改我的頁面上ID爲q_251_789和q_251_790的單選按鈕,因此爲什麼我使用JS將屬性添加到這兩個單選按鈕:jQuery .attr不能在IE6和IE7中工作

<script><!-- 
$("#q_249_249").hide(); 
$("#q249").hide(); 
$("#q_251_789").attr("onClick","yesClicked();"); 
$("#q_251_790").attr("onClick","noClicked();"); 

function yesClicked() 
{ 
    $("#q_249_249").show(); 
    $("#q249").show(); 
    $("#addressTable").show(); 
}; 

function noClicked() 
{ 
    $("#q_249_249").hide(); 
    $("#q249").hide(); 
    $("#addressTable").hide(); 
}; 
//--></script> 

在Chrome瀏覽器(DEV),FF(3.6),和IE8這一切工作正常。

在IE6和IE7下面兩行腳本不工作產生任何錯誤(根據IE開發工具 - > JS調試器):

$("#q_251_789").attr("onClick","yesClicked();"); 
$("#q_251_790").attr("onClick","noClicked();"); 

任何想法我做錯了? 還是解決方法來實現相同的目標?

回答

4

而不是設置一個事件處理程序.attr()的附加.click()處理程序不顯眼的方式,像這樣:

$("#q_251_789").click(yesClicked); 
$("#q_251_790").click(noClicked); 

或者,使用匿名函數這樣的(組合選擇僅僅是一個捷徑,但無關):

$("#q_251_789").click(function() { 
    $("#q_249_249, #q249, #addressTable").show(); 
}); 
$("#q_251_790").click(function() { 
    $("#q_249_249, #q249, #addressTable").hide(); 
}); 
+0

真棒!試了後者,它很好:) 非常感謝! – 2010-10-13 10:31:30