下面的javascript代码大约是我的php页面的一半,我不能直接在我的页面上修改ID为q_251_789和q_251_790的单选按钮,因此为什么我使用JS为这两个单选按钮添加属性:
<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(开发),FF(3.6)和IE8中,一切正常。
在IE6和IE7中,脚本的以下两行不起作用但不产生任何错误(根据IE开发工具 - &gt; JS调试器):
$("#q_251_789").attr("onClick","yesClicked();");
$("#q_251_790").attr("onClick","noClicked();");
任何想法我做错了什么? 或者实现相同目标的解决方法?
答案 0 :(得分: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();
});