抱歉我的英语不好。 我正在使用 jQuery 插件 slick 。它包含一些代码
_isSlideOnFocus =_.$slider.find('*').is(':focus');
...
if(_isSlideOnFocus) {
//some code that i don't want to execute
}
插件能够在执行上层代码之前执行回调。所以我可以取消元素的焦点,但我不知道如何。
在浏览器控制台中,在上面的代码之前,我尝试
_.$slider.find('*').blur();
_.$slider.find('*').each(function() {$(this).blur()});
_.$slider.find('*').trigger('blur');
但它不起作用。
我在控制台尝试
_.$slider.find(':focus'); //empty jQuery object
_.$slider.find('*').each(function() {
console.log($(this).is(':focus')); //false for all elements
});
_.$slider.find('*').is(':focus') //but this one returns true
即使我尝试
_.$slider.find('*').each(function() {
if($(this).is(':focus')) {
$(this).blur();
console.log($(this).is(':focus'));
}
});
控制台日志为 true,因此我可以看到模糊不适用于 is(':blur') 如何模糊 $slider 中的所有元素?感谢您的帮助
Here fiddle 。我的代码在js block 的末尾。主题插件代码位于插件末尾的Slick.prototype.activateADA函数中。
最佳答案
我已经找到解决办法了。我使用的是旧的 jQuery 版本 1.7。将 jQuery 更新到 1.9 后模糊可以工作。
关于javascript - 对 jQuery 的不关注是 (':focus' ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31477401/