为了账号安全,请及时绑定邮箱和手机立即绑定

让jQuery识别IE中的.change()

让jQuery识别IE中的.change()

凤凰求蛊 2019-07-26 15:28:38
让jQuery识别IE中的.change()当我更改/点击单选按钮组时,我正在使用jQuery来隐藏和显示元素。它在Firefox等浏览器中运行良好,但在IE 6和7中,仅当用户点击页面上的其他位置时才会执行操作。详细说明,当你加载页面时,一切看起来都很好。在Firefox中,如果单击单选按钮,则会隐藏一个表行,并立即显示另一个表行。但是,在IE 6和7中,您单击单选按钮,在您单击页面上的某个位置之前不会发生任何事情。只有这样,IE才会重绘页面,隐藏并显示相关元素。这是我正在使用的jQuery:$(document).ready(function () {   $(".hiddenOnLoad").hide();   $("#viewByOrg").change(function () {     $(".visibleOnLoad").show();     $(".hiddenOnLoad").hide();   });   $("#viewByProduct").change(function () {     $(".visibleOnLoad").hide();     $(".hiddenOnLoad").show();   });});这是它影响的XHTML的一部分。整个页面验证为XHTML 1.0 Strict。<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>如果有人有任何想法为什么会这样,以及如何解决它,他们将非常感谢!
查看完整描述

3 回答

?
梦里花落0921

TA贡献1772条经验 获得超6个赞

尝试使用.click而不是.change


查看完整回答
反对 回复 2019-07-26
?
犯罪嫌疑人X

TA贡献2080条经验 获得超4个赞

你有没有尝试过IE的onpropertychange事件?我不知道它是否有所作为,但它可能值得一试。当通过JS代码更新值时,IE不会触发更改事件,但是在此实例中,onpropertychange可能会起作用。

$("#viewByOrg").bind($.browser.msie? 'propertychange': 'change', function(e) {
  e.preventDefault(); // Your code here });


查看完整回答
反对 回复 2019-07-26
  • 3 回答
  • 0 关注
  • 680 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信