下面的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/