下面的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(dev),FF(3.6)和IE8中,一切正常。

在IE6和IE7中,脚本的以下两行不起作用,但不会产生任何错误(根据IE dev工具-> JS调试器):

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


有什么想法我做错了吗?
还是实现相同目标的解决方法?

最佳答案

不必设置事件处理程序.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();
});

关于javascript - jQuery .attr在IE6和IE7中不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3922080/

10-09 18:07