javascript - jQuery 鼠标进入/离开

标签 javascript jquery html

我在 html 中有这段代码:

<div class="sub-status">
    <p class="subscribed"><i class="icon-check"></i> Subscribed</p>
</div>

悬停时,我希望将其更改为:

<div class="sub-status">
    <p class="unsubscribe"><i>X</i> Unsubscribe</p>
</div>

而且,我在 jQuery 中有这段代码:

$(document).ready(function() {
    $('.sub-status').mouseenter(function() {
        $(this).html("<p class='unsubscribe'><i>X</i> Unsubscribe</p>");
    });
    $('.sub-status').mouseleave(function() {
        $('this').html("<p class='subscribed'><i class='icon-check'></i> Subscribed</p>");
    });
});

第一个功能运行良好。当我将鼠标悬停在那个 div 上时,它被更改为我想要的,但是 mouseleave 不起作用。我希望当我将鼠标移出那个 div 时,它的数据会恢复到以前的状态。我无法正常工作。任何帮助将不胜感激。

谢谢。

最佳答案

改变

$('this')...

$(this)...

你可以使用 hover()而不是使用两个单独的函数:

$('.sub-status').hover(function() {
    $(this).html("<p class='unsubscribe'><i>X</i> Unsubscribe</p>");
},function() {
    $(this).html("<p class='subscribed'><i class='icon-check'></i> Subscribed</p>");
});

已更新

您的 fiddle 不起作用,因为您正在更新悬停元素的全部内容 - 仅更新 <p> 中的文本应该可以。

$('.sub-status').hover(function() {
  $(this).children('p')
              .removeClass()
              .addClass('unsubscribed')
              .html("<i>X</i> Unsubscribe");
  },function() {
     $(this).children('p')
               .removeClass()
               .addClass('subscribed')
               .html("<i class='icon-check'></i> Subscribed");
});

Working fiddle

关于javascript - jQuery 鼠标进入/离开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17276413/

相关文章:

javascript - 是否可以使用 ie 选项卡 View 在 chrome 上调试 javascript?

javascript - X 如何在 angularJS 中获得值(value)

javascript - 使用 jquery ajax 时未修改 304

javascript - 使用 d3.js 附加时如何使用 jquery 查找 div

javascript - array.push() 但数组中没有结果?

javascript - 在 Internet Explorer 11 中通过 fetch-api 发布 FormData 对象时的空值

Jquery 选项卡帮助

html - Chrome 忽略自动完成 ="off"

javascript - 在下拉导航中禁用父链接

html - div 内的中心 block (段落)