【发布时间】: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