jQuery替换hover时元素的文本
使用jQuery,我试图在hover时用这些链接替换文本,包括span。 然后,当用户将鼠标hover时,将再次显示原始文本。
Replace me please Replace me please
最终的输出应该是
I'm replaced!
我正在玩弄,但不知道如何更换它。 有任何想法吗?
$('.btn').hover(function(){ $(this).text("I'm replaced!"); });
$('.btn').hover( function() { var $this = $(this); // caching $(this) $this.data('initialText', $this.text()); $this.text("I'm replaced!"); }, function() { var $this = $(this); // caching $(this) $this.text($this.data('initialText')); } );
您可以将原始文本保存在存储在节点本身的data-initialText
属性中,以避免变量
这应该可以解决问题
$(function(){ var prev; $('.btn').hover(function(){ prev = $(this).text(); $(this).text("I'm replaced!"); }, function(){ $(this).text(prev) }); })
将另一个函数添加到hover事件,如下所示:
$('.btn').hover(function(){ $(this).text("I'm replaced!"); }, function() { $(this).text("Replace me please"); });
演示链接
$('.btn').hover(function() { // store $(this).text() in a variable $(this).text("I'm replaced!"); }, function() { // assign it back here });
您需要将其存储在变量中以便将其设置回原来的状态,请尝试:
var text; $(".btn").hover(function () { text = $(this).text(); $(this).text("I'm replaced!"); }, function () { $(this).text(text); });