对于 is(':focus') 如何不关注 jQuery
How unfocus on jQuery for is(':focus')
抱歉我的英语不好。
我正在使用 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'));
}
});
控制台记录为真,所以我可以看到模糊不适用于 is(':blur')
我如何模糊 $slider 中的所有元素?感谢您的帮助
Here fiddle。我的代码在 js 块的末尾。主题插件代码在插件末尾的Slick.prototype.activateADA函数中。
我找到了解决办法。我使用的是旧的 jQuery 版本 1.7。将 jQuery 更新到 1.9 后模糊效果。
我这样做了:
$('.ui-slider-handle').blur();
抱歉我的英语不好。 我正在使用 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'));
}
});
控制台记录为真,所以我可以看到模糊不适用于 is(':blur') 我如何模糊 $slider 中的所有元素?感谢您的帮助
Here fiddle。我的代码在 js 块的末尾。主题插件代码在插件末尾的Slick.prototype.activateADA函数中。
我找到了解决办法。我使用的是旧的 jQuery 版本 1.7。将 jQuery 更新到 1.9 后模糊效果。
我这样做了:
$('.ui-slider-handle').blur();