#jquery #mouseleave
#jquery #mouseleave
Вопрос:
может ли кто-нибудь помочь мне с этим? У меня есть эффект mouseenter и mouseleave, и я хочу отключить его при нажатии на другой div.. это мой код
$('.offer-content').on('mouseenter', function(){
$(this).find('.offer-desc').show()
}).on('mouseleave', function(){
$(this).find('.offer-desc').hide()
})
$(".st_sharethis").click(function(){
$flex(".offer-content").off('mouseleave');
});
чего я хочу, так это снова включить mouseenter и mouseleave, когда я закрываю класс «.st_sharethis»
заранее спасибо!
Ответ №1:
Вам нужно изменить $flex на $
Приведенный ниже код будет работать для вас:
$('.offer-content').on('mouseenter', function(){
$(this).find('.offer-desc').show()
}).on('mouseleave', function(){
$(this).find('.offer-desc').hide()
});
$(".st_sharethis").click(function(){
$(".offer-content").off('mouseleave');
});
Вы также можете протестировать это:http://jsfiddle.net/Qz2Rk
Комментарии:
1. спасибо за быстрый ответ.. но я хочу вернуть эффект наведения, как только я снова нажму на .st_sharethis div..
Ответ №2:
Я создал скрипку с требуемым поведением. Из вашего вопроса похоже, что вы хотите переключить поведение события при нажатии .st_sharethis. Приведенный ниже код работает так, как ожидалось.
Нажмите на кнопку переключения событий и поведение с переключением при каждом нажатии.
Ссылка на скрипку:
Обновленная версия с улучшенным css:
HTML:
<div class="offer-content"><div class="offer-desc"></div></div>
<div class="st_sharethis">Toggle events</div>
CSS:
.offer-content{
width:200px;
height:200px;
background-color:#900;
cursor:pointer;
}
.offer-desc{
width:100px;
height:100px;
background-color:#090;
display:none;
}
.st_sharethis{
width:100px;
height:30px;
background-color:#009;
cursor:pointer;
}
JS:
$('.offer-content').on('mouseenter', function(){
$(this).find('.offer-desc').show()
}).on('mouseleave', function(){
$(this).find('.offer-desc').hide()
})
var mouseLeave = 0;
$(".st_sharethis").click(function(){
if(mouseLeave==0)
{
$(".offer-content").off('mouseleave');
mouseLeave=1;
}
else
{ $('.offer-content').on('mouseleave', function(){
$(this).find('.offer-desc').hide()
});
mouseLeave = 1;
}
});
На вашем веб-сайте я добавил следующий код из консоли, и он дал желаемое поведение.
jQuery(".stCloseNew2").click(function(){
jQuery('.offer-content').on('mouseleave', function(){
jQuery(this).find('.offer-desc').hide()
});
});
Комментарии:
1. на самом деле st_share_this — это всплывающая кнопка, это сайт, над которым я сейчас работаю tigerbills.co.uk/offers
2. я хочу снова включить эффект наведения, как только закрою кнопку поделиться этим
3. Вы можете добавить код $(‘.offer-content’).on(‘mouseleave’, function(){ $(this).find(‘.offer-desc’).hide() }); в случае, если вы хотите вернуть события обратно
4. Я добавил поведение при нажатии кнопки переключения, то есть, как только вы нажимаете кнопку, мышь уходит. Если вы нажмете на это снова, мышь leave станет активной. Вы можете достичь этого, сохранив текущее состояние события в переменной, а затем удалив и добавив событие из различных других событий.
5. Когда вы закрываете всплывающее окно, просто добавьте событие обратно туда, и оно начнет работать.!