【问题标题】:jquery 1.4.1 change() on textarea not working in IE 8textarea 上的 jquery 1.4.1 change() 在 IE 8 中不起作用
【发布时间】:2011-04-03 19:16:24
【问题描述】:

所以我的 jquery (1.4.1) 代码是这样的:

$(document).ready(function () {  
    $("#Pattern").focus();  
    $("textarea").change(function () { Match(); });  
    ...  
    var Match = function () {
             ...
          };  
  })

模式是一个文本区域。 并且在任何地方都可以正常工作 - 除了 IE 8。而且 IE 8 的行为很奇怪 - 它有时第一次不起作用,后来似乎起作用。不工作是指当我在 textarea 中输入内容并失去焦点时 - 不调用匹配函数。 我环顾四周,但我所做的一切都是徒劳的。

编辑:解决方案

所以,没有任何效果,我不得不使用 .focusout 事件手动完成

    var previousPattern = '';
    $(document).ready(function () {
        $("#Pattern").focus();
        $("#Pattern").focusout(
                function () {
                   if ($("#Pattern").val() != previousPattern) {
                      previousPattern = $("#Pattern").val();
                      Match();
                   }
                });
       ...
    }

现在它按预期工作了。

【问题讨论】:

  • 注意:你不需要匿名函数来调用一个函数,只需使用:$("textarea").change(Match);
  • can't reproduce 请提供更多代码,以便我们查看可能导致此问题的原因..
  • 整件事都在这里:rextester
  • 是的,现在发现问题在代码中找不到任何异常。尝试添加 alert("match"); 作为函数的第一行,也许它正在执行并在更改文本之前失败?
  • 试过了,但是没有调用函数

标签: jquery internet-explorer-8 textarea onchange


【解决方案1】:

Twitter 似乎使用“输入”和“更改”——它不是standard。 尝试通过.bind() 绑定元素并检查if it is really bound

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-11-30
  • 2018-05-09
  • 2013-03-03
  • 1970-01-01
  • 1970-01-01
  • 2012-08-26
  • 2013-04-08
相关资源
最近更新 更多