【问题标题】:Jquery add and remove text on hover but don't remove on clickJquery在悬停时添加和删除文本,但在单击时不删除
【发布时间】:2013-12-05 17:51:57
【问题描述】:

当我将鼠标悬停在#one 上时,我正在使用此代码显示一些文本。但是当我“悬停”或鼠标离开时,我希望文本消失。这很好用。当我点击#one 时出现问题,然后我希望该文本保留(但不会因为悬停时的 .empty 功能不允许。有什么想法吗?

<div class="info"><p></p></div>



$('#one').hover(function() {
        $('.info p').text('Some Text');
    },
        function() {
         $('.info p').empty();

    });

  $('#one').click(function()
        $('.info p').text('Some Text');

    });

【问题讨论】:

  • 点击时可以解开悬停吗?

标签: jquery text hover click string


【解决方案1】:

当您点击#one 时,向.info 添加一个类,如.active,并将hover 的mouseout 部分更改为在info 为.active 时不触发

$('#one').click(function()
    $('.info p').addClass('active').text('Some Text');
});

$('#one').hover(function() {
    $('.info p').text('Some Text');
},
    function() {
     if (!$('.info p').hasClass('active')) {
         $('.info p').empty();
     }
});

【讨论】:

    【解决方案2】:

    我会使用 mouseleave 和 mouseenter 来绑定事件,这样你可以在点击处理程序中使用 $('#one').unbind('mouseleave') ,以防止鼠标移出时文本消失.然后在重新输入时重新绑定 mouseleave 处理程序。有点棘手。

    【讨论】:

    • 我添加了另一个按钮,使用您的绑定/取消绑定方法将我带回原始状态,但绑定不起作用!所以我点击解绑悬停后就不能再绑定了?你能看看这个小提琴吗? jsfiddle.net/Alga/9LGA9
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多