不知道
为什么它不起作用,我认为代码很好 - 你能告诉我出了什么问题吗?我需要在一段时间后添加一些类...
$('.main_menu ul li').mouseenter(function(){
setTimeout(function(){
$(this).children('.sub_menu_main').addClass('opened')
},200);
});
$('.main_menu ul li').mouseleave(function(){
$(this).children('.sub_menu_main').removeClass('opened')
});
$('.main_menu ul li').on({
mouseenter: function(){
var self = this; //in scope
$(self).data('timer', setTimeout(function(){ //new scope
$(self).children('.sub_menu_main').addClass('opened'); //out of scope
},200);
},
mouseleave: function(){
clearTimeout($(this).data('timer'));
$(this).children('.sub_menu_main').removeClass('opened');
}
});
我相信
this
并没有引用你认为它在那个范围内的作用。您应该尝试在外部作用域中存储对此的引用,然后改为通过该引用访问悬停的元素:
$('.main_menu ul li').mouseenter(function(){
var that = this;
setTimeout(function(){
$(that).children('.sub_menu_main').addClass('opened')
},200);
});