【问题标题】:is the jQuery function "change()" working in IE?jQuery 函数“change()”在 IE 中工作吗?
【发布时间】:2010-06-13 17:36:07
【问题描述】:

jQuery 函数“change()”在 IE 中是否有效?

我通常用它来检测表单的变化(选择/取消选择复选框),并自动提交它们而无需点击提交按钮(隐藏)。

$("#views-exposed-form-Portfolio-page-1").change(function(){
        $("#views-exposed-form-Portfolio-page-1").submit();   
});

但在即它不起作用。看来我必须改用“点击”。 谢谢

IE 中的解决方案:

if (navigator.appName == 'Microsoft Internet Explorer') {
    $(".option").click(function(){
        $("#loadingOverlay").css('display','block');

        if ($(this).children().is(':checked')) {
            $(this).children().attr('checked', '');
        } else {
            $(this).children().attr('checked', 'checked');
        }
        $("#views-exposed-form-Portfolio-page-1").submit();     
    }); 
}

【问题讨论】:

  • 这是form 元素还是select?还是哪个?
  • 你可能想看看这个:stackoverflow.com/questions/208471/…
  • 它在 ie 中完美运行。请你显示一些其他的代码行。
  • 您使用的是什么版本的 jQuery?新的(ish)1.4 版本使事件冒泡在所有支持的浏览器中几乎完美地工作。在 1.4 之前,它并不是那么完美。
  • @Patrick - 那么答案是否定的,由于 IE 的处理方式,它不能正常工作,它在 jQuery 1.4.2 事件重写中完全标准化。

标签: javascript jquery internet-explorer


【解决方案1】:

在 IE 中,change() 不起作用.. 所以我使用了以下代码:

  if ($(this).children().is(':checked')) {
        $(this).children().attr('checked', '');
    } else {
        $(this).children().attr('checked', 'checked');
    }
    $("#views-exposed-form-Portfolio-page-1").submit();     
}); 

【讨论】:

    【解决方案2】:

    【讨论】:

      【解决方案3】:

      change 事件只会在元素失去焦点(模糊)时触发。再次单击页面上的某个位置,使您的复选框/单选按钮模糊,然后您会看到它被触发。如果是复选框和单选按钮,您确实更愿意挂上click 事件。这也是有道理的,点击它会(取消)选中复选框/单选按钮:)

      这个“问题”与 IE 无关。

      【讨论】:

        【解决方案4】:

        现在 Jquery 更改功能似乎可以在 IE-7 中使用。 'Change' 可以与选择(下拉)、复选框和单选按钮一起使用。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-04-24
          • 1970-01-01
          • 1970-01-01
          • 2015-03-20
          • 2017-11-24
          相关资源
          最近更新 更多