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