jQuery .attr在IE6& IE7

时间:2010-10-13 08:55:49

标签: javascript jquery internet-explorer-7 internet-explorer-6

下面的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();");

任何想法我做错了什么? 或者实现相同目标的解决方法?

1 个答案:

答案 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();
});