当你专注于页面上的任何元素时,如果元素位于具有特定类的div中,则需要触发事件。以下内容始终返回no:
$('body').focusin(function () {
if ($(':focus').parents('.my-class').length) {
console.log('yes');
} else {
console.log('no');
}
});
当我在函数中添加以下内容时,我可以看到始终记录第一个聚焦元素。当焦点转移到新元素时,它不会更新。
var focus = $(':focus');
console.log(focus);
答案 0 :(得分:0)
试试这个
StatusBar statusBar = Windows.UI.ViewManagement.StatusBar.GetForCurrentView();
// Hide the status bar
Task hidingStatusBarTask = statusBar.HideAsync();
hidingStatusBarTask.Wait();
这是一个有效的Jsbin
https://jsbin.com/dovivonizo/edit?html,js,console,output
基本上你需要监听任何输入聚焦的时间,然后检查它是$('input, a').on('focus',function(e){
if($(this).parents('.my-class').hasClass('my-class')){
console.log('should fire');
}
});
的父元素,看看它是否有div
类或你要检查的任何类
你仍然需要返回true,这就是为什么你仍然需要最后的my-class
才能返回true。
答案 1 :(得分:0)
将focusin
绑定到预期的div
应该按照https://api.jquery.com/focusin/
$('div.my-class').focusin(function() {
//do your stuff
});
如果它是动态添加的div
,您可以使用on
$(document.body).on('focusin', 'div.my-class', function() {
//do your stuff
});