我的问题非常烦人,可能是一些非常愚蠢的东西,但我一直在解决这个问题,并没有找到解决方案。我在2个不同的页面中调用了这个局部视图:
<div id="NotificationStatusSuspensionDiv">
<p>
<strong><%= Html.Label("Status :") %> </strong><br />
<input type="radio" name="NotificationStatusSuspension" id="statusA" value="A" checked="checked" />
<label for="statusA">Active</label>
<input type="radio" name="NotificationStatusSuspension" id="statusN" value="N" />
<label for="statusN">Not Active</label>
</p>
</div>
问题是在外部javascript文件的document.ready方法中我这样做:
$('input:radio[name="NotificationStatusSuspension"]').each(function() {
$(this).click(function() {
setNotificationStatus($(this));
});
});
我已经看到这很好用,当我点击radiobutton时,它会加载与所选状态相对应的通知(这就是setNotificationStatus所做的)。问题是当我将UI添加到radiobutton时,如下所示:
$('#NotificationStatusSuspensionDiv').buttonset();
使用所有这些代码,它在firefox和Chrome中运行得非常好,但在IE中它没有做任何事情。就好像它无法识别鼠标点击一样。有趣的是,我在网站的另一部分或多或少有相同的代码,它与IE的工作正常....你有任何线索吗?
答案 0 :(得分:1)
我会尝试一些事情:
在jQuery选择器中,尝试在属性周围加上引号以匹配:
$('input:radio[name="NotificationStatus"]')
尝试使用jQuery的each()方法,因此您的事件绑定如下:
$('input:radio[name="NotificationStatus"]').each(function(){
$(this).click(function(){
alert($(this).val());
});
});
最后,尝试使用字母数字和下划线来识别ID。第三个单选按钮在ID名称中有%符号,我不确定这是不是很好。当IE看到它时,它可能会失败。
PS:为了清晰(和标准),您可能希望删除属性中等号周围的空格,以及在自闭斜杠之前添加空格。例如,更改:
<input type="radio" name="NotificationStatus" id="statusA" value = "A" checked = "checked"/>
到
<input type="radio" name="NotificationStatus" id="statusA" value="A" checked="checked" />