jquery mouseenter сделать это, mouseleave сделать это, нажать кнопку do this и остановить события mouseenter / mouseleave

0

Я пытаюсь, чтобы источник атрибута изображения был заменен на мыши, введите событие мыши. И при нажатии изображение должно оставаться активным. Мне нужно, чтобы событие 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>

Как я могу это достичь?

Теги:
onclick
mouseleave
mouseenter

3 ответа

3
Лучший ответ

Просто выключите мышь, когда вы нажмете:

jQuery('.paypal').click(function(){
    jQuery('.paypal').css('opacity','1').off('mouseleave');
});
  • 1
    jQuery ('. paypal') также подходит для кэширования, так как он использовался шесть раз в исходном примере.
  • 0
    замечательно, что сделал это. Я не знал о .off Спасибо!
0

Вы можете отключить обработчик mouseleave внутри обработчика click, используя off:

jQuery('.paypal').click(function() {
    jQuery('.paypal').css('opacity', '1');
    jQuery('.paypal').off('mouseleave');
});
0

Быстрое решение похоже на добавление класса при щелчке, а затем проверку наличия этого класса на 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 или выше).

Ещё вопросы

Сообщество Overcoder
Наверх
Меню