我有几行代码试图检测用户交互(输入)的最后一个字段。
以下事件处理程序正常运行,但if/else
无论用户是否将文本输入到 field#input1
或#input2
. 在这个例子中是否有 localeCompare 的意外行为?
JS:
$("#input1, #input2").keyup(function () {
if (("input1").localeCompare($(this).attr("id"))) {
calculateA();
} else if (("input2").localeCompare($(this).attr("id"))) {
calculateD();
});
}
HTML:
<div id="input1">
<div class="input-prepend">
<span class="add-on"></span>
<input id="foo" class="span7" type="text">
</div>
<br>
<div class="input-prepend">
<span class="add-on"></span>
<input id="bar" class="span7" type="text">
</div>
</div>
编辑:事实证明,错误并不完全是由于上面发布的代码。片段中的两个比较.js
实际上是setTimeout
回调函数的主体;因此,我没有意识到执行上下文(以及随后的 ' this
' 的值)会改变!