如何在悬停时更改文本并在鼠标移出时恢复为默认值?

时间:2012-07-13 20:40:15

标签: php jquery html

我有一个显示如下计数的div:

如何将文本从0更改为任何单词,例如,当鼠标位于div上方时,并在鼠标离开时恢复为0。

我尝试了这段代码,但它没有用。

$('.post-fav a').bind('mouseenter',function() {
    var default_text = $(this).text();
    $(this).css({'background-position' : 'left bottom', 'color' : '#1871a4'});
    $(this).html('<?php _e('favorite','deluxe'); ?>');
});
$('.post-fav a').bind('mouseleave',function() {
    $(this).css({'background-position' : 'left top', 'color' : '#666'});
    $(this).text(default_text);
});

默认文本是可变的,每个元素都有特定的计数,我需要在鼠标移动时存储初始计数。我不能在js中将其硬编码为0或任何其他计数。

3 个答案:

答案 0 :(得分:5)

你只需要使用悬停功能,第一个参数是鼠标悬停,第二个是mouseout:

$('div').hover(
    function() { $(this).html('anyword'); },
    function() { $(this).html('0'); }
);

修改

var storedtext;
$('div').hover(
    function() { 
        storedtext = $(this).html();
        $(this).html('anyword'); 
    },
    function() { $(this).html(storedtext); }
);

答案 1 :(得分:2)

$inittext=$('div').html;

然后正如Shogun所说

$('div').hover(
function() { $(this).html('anyword'); },
function() { $(this).html($inittext); }
);

答案 2 :(得分:1)

最好的方法是使用数据属性:

<div data-initial-value="0">
<script>
$('div').bind('mouseenter',function() {
  var default_text = $(this).text();
  $(this).css({'background-position' : 'left bottom', 'color' : '#1871a4'});
  $(this).html('<?php _e('favorite','deluxe'); ?>');
});
$('div').bind('mouseleave',function() {
  $(this).css({'background-position' : 'left top', 'color' : '#666'});
  $(this).text($(this).data('initialValue');
}); 
</script>