我目前正在开发一些带有表格的管理工具。当我单击一个字段时,它将使其可编辑。但是我有几个字段,其中有多个选择框或文本字段。问题是当一个选择框或文本字段模糊时调用处理程序。
我尝试检查是否有任何所需的对象具有焦点,但似乎在新元素具有焦点之前触发了模糊事件。
举个例子:
我的 HTML 代码如下所示:
<form>
<select id="edit">
<!-- Options... -->
</select>
<select id="edit2">
<!-- Options... -->
</select>
</form>
这是我的一些js:
$(document).on("blur", "select.edit", finishEdit);
$(document).on("blur", "select.edit2", finishEdit);
// Some later point in the code
function finishEdit()
{
if(!($("select.edit:focus").length || $("select.edit2:focus").length))
{
// This should NOT be called if I just focus edit2! But it does!!
}
}
所以我从选择编辑开始。我可以轻松地编辑它。但是,如果我现在尝试选择 edit2,我的编辑中的模糊事件将被调用。行。这应该不是什么大问题,因为我正在检查是否选择了另一个下拉菜单。但是此时 edit2 尚未集中,因此我的检查失败并调用了代码,这将删除下拉菜单并发送更新!
那么我怎样才能使这项工作呢?基本上,如果我将焦点放在另一个有效元素上,如何防止触发模糊事件?
(我希望现在更清楚......)