jquery mouseenter执行此操作,mouseleave执行此操作,单击执行此操作并停止mouseenter / mouseleave事件

时间:2014-02-23 21:30:31

标签: javascript jquery onclick mouseenter mouseleave

我试图在鼠标输入鼠标离开事件时替换图像属性源。单击时,图像应保持活动状态。我需要在点击完成后停止mouseleave事件。到目前为止,mouseeleave仍然继续点击,切换回图像,这是下面的代码:

<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>

我怎样才能实现这一目标?。

3 个答案:

答案 0 :(得分:3)

点击以下内容时,只需转动off鼠标左键:

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

答案 1 :(得分: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或更高版本)。

答案 2 :(得分:0)

您可以使用mouseleave关闭click处理程序中的off处理程序:

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