我需要能够控制何时实际触发模糊事件。
<div class="selectedcomp"></div>
<input type="text" class="textbox" maxlength="50" id="searchfavs" />
<div id="globalcompanyresultscontainer">
<div id="globalcompanyresults">
</div>
</div>
当用户在#searchfavs中键入查询时,我将结果加载到#globalcompanyresults中。当用户单击加载的结果时,我将该结果的HTML复制到另一个元素中:
$('#globalcompanyresults').on('click', 'div.company-card img', function () {
$('#globalcompanyresults').html('');
$('.selectedcomp').html($(this).parent()[0].outerHTML);
});
一旦用户点击#searchfavs元素外部或按Tab键,同时导致#searchfavs失去焦点,我想清除所有结果,只需调用它:
$("#searchfavs").blur(function () {
$('#globalcompanyresults').html('');
});
但是,只要用户在#globalcompanyresults中单击结果,就会调用此函数,抛出blur事件,导致#globalcompanyresults为空,我无法再访问单击的结果HTML。
onblur,如果单击#globalcompanyresults中的结果,通过在其他位置单击或按Tab键,它可能不会被触发。
答案 0 :(得分:1)
如果您只想在按下tab
键时执行逻辑,为什么不回复keydown
事件而不是blur
事件?
$('#searchfavs').keydown(function(e) {
if (e.keyCode == 9) {
$('#globalcompanyresults').html('');
}
});