1

jqueryのon()-メソッドを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それは単に最初の関数と2番目の関数に拡張され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 に答える