我有一个独特的情况,我想弄清楚。这就是我在做的事情:
$( ".add-user-group" )
.focusout(function(e) {
$(this).parent().find(".search-overhang").hide();
})
.focus(function() {
$(this).parent().find(".search-overhang").show();
});
我正在侦听何时选择此输入以显示使用ajax
填充服务器调用的结果容器现在在ajax
调用中我使用以下方法填充数据:
dataSent.parent().find(".search-overhang").html('');
for(var i = 0; i < data.data_retrieved.length; i++)
{
dataSent.parent().find(".search-overhang").append("<span class='overhang-data'><span>"+data.data_retrieved[i].display_name+"</span><br/><span class='bottom-inside-overhang-data'>"+data.data_retrieved[i].user_email+"</span></span>");
}
$(".overhang-data").on('click',function(event){
event.stopPropagation();
});
现在您会注意到我的on click
应覆盖focusout
上的add-user-group
。但这种情况并非如此。在它有机会之前它会停止,因为我使用focusout
停止事件操作。我想弄清楚的是,即使我的数据被动态填充,我怎样才能覆盖它?请注意一件事:add-user-group
在页面加载之前加载服务器端。
建议,想法?
答案 0 :(得分:0)
进一步观察后,我找到了一个快速的解决方案:
var clicked = '';
$(document).on('mousedown',function(event){
clicked = $(event.target).attr("class");
});
..
.focusout(function(event) {
if(clicked !== "overhang-data")
{
$(this).parent().find(".search-overhang").hide();
}
})..
我只是在全球范围内收听所点击的内容并将其存储到变量中,因此当我需要检查focusout
时,我可以验证它是否是相应的类。