等待onclick事件在jquery事件函数之前完成

时间:2018-05-26 12:04:37

标签: javascript jquery html

我有国家的标记系统。用户可以通过输入执行查询,查询结果显示为下拉框,单击其中一个结果后,将重置查询并将国家/地区名称“附加”到输入。

这个系统看起来很像Stackoverflow的问号标记系统。我已经完成了所有这些步骤,除了一个,即在输入未聚焦时关闭菜单(这基本上意味着输入外的每次点击都应该关闭查询菜单。)

下面的代码负责将所有国家/地区添加到查询菜单中,注意 tagItem.onclick 事件定义,一旦点击了标记,它就会“附加”到输入中。

QObject

要捕获输入之外的点击事件,我认为最新的选项是$.each(data.countries, function(i, item) { var listItem = document.createElement("li"); var tagItem = document.createElement("span"); tagItem.innerHTML = item; tagItem.onclick = function() { add_tag(item); }; tagItem.style.cursor = "pointer"; tagItem.className = "reg_c_interest_tag"; listItem.appendChild(tagItem); document.getElementById("reg_c_interest_queryresult").appendChild(listItem); }); 事件:

$(selector).focusout

问题

不幸的是,这两个事件相互干扰,$("#reg_c_interest_editor").focusout(function () { $("#reg_c_interest_queryresult").empty(); }); 事件的注册速度比focusout事件更快,因此在用户点击任何标记onclick功能之前清空该菜单。

我知道我应该使用Jquery的focusout,但我不确定如何在迭代过程中完成。

如何确定这些$(selector).click事件的优先顺序?因此onclick函数仅在focusout为时执行。

谢谢!

0 个答案:

没有答案