1

我尝试将 jquery 的 on()-Method 与 hover() 结合使用。我希望用户将鼠标悬停在一个 div 上,显示一个值,当将鼠标从该 div 移开时,再次看到旧值,但这不起作用......有人知道吗?

$('#content').on('hover', '.player_marktwert_box',
    function() {
    var playerValue = $(this).html();
        $(this).html("test");
    },
    function () {
        $(this).html(playerValue);
    }
);

谢谢!

4

7 回答 7

5

.hover实际上只是一个快捷方式而不是真正的事件名称。它只是扩展mouseenter为第一个函数和mouseleave第二个函数。

因此,您可以分别使用.on("mouseenter", "...",.on("mouseleave", "...",

于 2012-07-25T20:13:29.400 回答
2
$('#content').on({
    mouseenter: function() { ... },
    mouseleave: function() { ... }
},'.player_marktwert_box');

hover这是不使用$.hover()快捷方式委托事件的正确方法

于 2012-07-25T20:16:23.017 回答
1

试试这个(只是按照pimvdb'的想法)

$('#content').on('mouseenter', '.player_marktwert_box', function() {
    var playerValue = $(this).html();
    $(this).html("test").data('playerValue',playerValue);
}).on('mouseleave', '.player_marktwert_box', function() {
    $(this).html($(this).data('playerValue'));
});

演示。

于 2012-07-25T20:21:41.193 回答
1

这是小提琴:http : //jsfiddle.net/collabcoders/ses7G/

var originalValue;
$('#content').on('mouseenter', '.player_marktwert_box', function(){
    originalValue = $(this).html();
    $(this).html("test");
}).on('mouseleave', '.player_marktwert_box', function() {
    $(this).html(originalValue);
});

​</p>

于 2012-07-25T20:22:33.550 回答
1

一个简单的例子:

var val=$('#foo').html();
$(document).on('mouseenter mouseleave', '#foo', function(ev) {
    $(this).html((ev.type == 'mouseenter') ? 'test' : val);
});​

jsFiddle 示例

于 2012-07-25T20:25:17.650 回答
0
var playerValue;

$(".selector").on({
    mouseenter: function () {
        playerValue = $(this).html();
        $(this).html("test");
    }, 
    mouseleave: function () {
        $(this).html(playerValue);
    }
});

请查看问题以获取更多详细信息。由于 playerValue 超出了事件的范围,它将具有一个持续存在的值。根据您的脚本,这可能会起作用,具体取决于是否可以一次将鼠标悬停在多个.selector元素上。

于 2012-07-25T20:15:46.250 回答
0

有理由不只使用 .hover 吗?

var playerValue = $('.player_marktwert_box').html();
$('.player_marktwert_box').hover(
   function() {
      $(this).html("TEST :)");
   },
   function () {
      $(this).html(playerValue);
   }
);

演示 - http://jsfiddle.net/M93mM/1/

于 2012-07-25T20:22:53.160 回答