当单选按钮组被更改/单击时,我使用jQuery来隐藏和显示元素。它在Firefox等浏览器中工作得很好,但在IE6和IE7中,只有当用户点击页面上的其他地方时,该操作才会发生。
更详细地说,当您加载页面时,一切看起来都很好。在Firefox中,如果单击某个单选按钮,则会隐藏一个表行,而立即显示另一个表行。但是,在IE6和IE7中,单击单选按钮,在单击页面上的某个位置之前什么都不会发生。只有到那时,IE才会重新绘制页面,隐藏并显示相关元素。
下面是我使用的jQuery:
$(document).ready(function () {
$(".hiddenOnLoad").hide();
$("#viewByOrg").change(function () {
$(".visibleOnLoad").show();
$(".hiddenOnLoad").hide();
});
$("#viewByProduct").change(function () {
$(".visibleOnLoad").hide();
$(".hiddenOnLoad").show();
});
});下面是XHTML中受其影响的部分。整个页面都验证为XHTML1.0Strict。
<tr>
<td>View by:</td>
<td>
<p>
<input type="radio" name="viewBy" id="viewByOrg" value="organisation"
checked="checked" />Organisation</p>
<p>
<input type="radio" name="viewBy" id="viewByProduct" value="product" />Product</p>
</td>
</tr>
<tr class="visibleOnLoad">
<td>Organisation:</td>
<td>
<select name="organisation" id="organisation" multiple="multiple" size="10">
<option value="1">Option 1</option>
<option value="2">Option 2</option>
</select>
</td>
</tr>
<tr class="hiddenOnLoad">
<td>Product:</td>
<td>
<select name="product" id="product" multiple="multiple" size="10">
<option value="1">Option 1</option>
<option value="2">Option 2</option>
</select>
</td>
</tr>如果任何人有任何想法,为什么会发生这种情况,以及如何解决它,他们将非常感谢!
发布于 2008-10-16 13:13:26
尝试使用.click而不是.change。
发布于 2009-07-03 17:25:47
使用click事件而不是change事件的问题是,如果选择了相同的单选框(即实际上没有更改),就会得到事件。如果检查新的值与旧的值不同,则可以将其过滤掉。我觉得这有点烦人。
如果您使用change事件,您可能会注意到,在您单击IE中的任何其他元素后,它将识别出更改。如果在click事件中调用blur(),它将导致触发change事件(仅当单选框实际发生更改时)。
我是这样做的:
// This is the hack for IE
if ($.browser.msie) {
$("#viewByOrg").click(function() {
this.blur();
this.focus();
});
}
$("#viewByOrg").change(function() {
// Do stuff here
});现在,您可以像正常一样使用change事件。
Edit:添加了对focus()的调用,以防止可访问性问题(参见下面的Bobby注释)。
发布于 2009-10-29 03:56:06
你有没有试过IE的onpropertychange事件?我不知道这是否会有所不同,但它可能值得一试。当通过JS代码更新值时,IE不会触发change事件,但在这种情况下,onpropertychange可能会起作用。
$("#viewByOrg").bind($.browser.msie? 'propertychange': 'change', function(e) {
e.preventDefault(); // Your code here
}); https://stackoverflow.com/questions/208471
复制相似问题