Я пытаюсь, чтобы источник атрибута изображения был заменен на мыши, введите событие мыши. И при нажатии изображение должно оставаться активным. Мне нужно, чтобы событие mouseleave остановилось после нажатия. До сих пор мышь остается после нажатия, переключение изображения, вот код ниже:
<script>
jQuery('.paypal').mouseenter(function(){
jQuery('.paypal').attr('src','http://url-to-my-active-image.jpg');?>');
}),
jQuery('.paypal').mouseleave(function(){
jQuery('.paypal').attr('src','http://url-to-my-inactive-image.jpg');
}),
jQuery('.paypal').click(function(){
jQuery('.paypal').css('opacity','1');
});
</script>
Как я могу это достичь?
Просто выключите мышь, когда вы нажмете:
jQuery('.paypal').click(function(){
jQuery('.paypal').css('opacity','1').off('mouseleave');
});
Вы можете отключить обработчик mouseleave
внутри обработчика click
, используя off
:
jQuery('.paypal').click(function() {
jQuery('.paypal').css('opacity', '1');
jQuery('.paypal').off('mouseleave');
});
Быстрое решение похоже на добавление класса при щелчке, а затем проверку наличия этого класса на mouseleave; если он там, ничего не делать.
<script>
jQuery('.paypal').mouseenter(function(){
jQuery('.paypal').attr('src','http://url-to-my-active-image.jpg');?>');
}),
jQuery('.paypal').mouseleave(function(){
if(!jQuery('.paypal').hasClass('selected')){
jQuery('.paypal').attr('src','http://url-to-my-inactive-image.jpg');
}
}),
jQuery('.paypal').click(function(){
jQuery('.paypal').css('opacity','1').addClass('selected');
});
</script>
@j08691 Ответ, вероятно, проще в обслуживании, особенно если вы используете последнюю версию jQuery (1.7 или выше).