161

次のjqueryコードを使用して、マウスでホバリングしているテーブル行に対してのみコンテキスト削除ボタンを表示しています。これは機能しますが、その場でjs/ajaxで追加された行では機能しません...

これをライブイベントで機能させる方法はありますか?

$("table tr").hover(
  function () {},
  function () {}
);
4

6 に答える 6

245

jQuery 1.4.1 は live() イベントの "hover" をサポートするようになりましたが、イベント ハンドラー関数は 1 つだけです。

$("table tr").live("hover",

function () {

});

または、mouseenter 用と mouseleave 用の 2 つの関数を提供することもできます。

$("table tr").live({
    mouseenter: function () {

    },
    mouseleave: function () {

    }
});
于 2010-02-14T19:54:16.297 に答える
110
$('.hoverme').live('mouseover mouseout', function(event) {
  if (event.type == 'mouseover') {
    // do something on mouseover
  } else {
    // do something on mouseout
  }
});

http://api.jquery.com/live/

于 2010-06-30T14:38:01.617 に答える
60

.live()jQuery 1.7 で非推奨になりました

代わりに使用.on()し、子孫セレクターを指定します

http://api.jquery.com/on/

$("table").on({
  mouseenter: function(){
    $(this).addClass("inside");
  },
  mouseleave: function(){
    $(this).removeClass("inside");
  }
}, "tr");  // descendant selector
于 2012-05-10T22:06:37.493 に答える
5

jQuery 1.4.1 以降、ホバー イベントは で動作しlive()ます。基本的には、mouseenter および mouseleave イベントにバインドするだけで、1.4.1 より前のバージョンでも同様に実行できます。

$("table tr")
    .mouseenter(function() {
        // Hover starts
    })
    .mouseleave(function() {
        // Hover ends
    });

これには 2 つのバインドが必要ですが、同様に機能します。

于 2010-02-14T19:46:06.820 に答える
5

このコードは機能します:

    $(".ui-button-text").live(
        'hover',
        function (ev) {
            if (ev.type == 'mouseover') {
                $(this).addClass("ui-state-hover");
            }

            if (ev.type == 'mouseout') {
                $(this).removeClass("ui-state-hover");
            }
        });
于 2010-06-08T04:34:02.527 に答える
2

警告: ホバーのライブ バージョンでは、パフォーマンスが大幅に低下します。IE8 の大きなページでは特に顕著です。

私は、AJAX を使用してマルチレベル メニューをロードするプロジェクトに取り組んでいます (理由があります :)。とにかく、Chromeでうまく機能するホバーにライブメソッドを使用しました(IE9は問題ありませんでしたが、うまくいきませんでした)。ただし、IE8 では、メニューの速度が低下しただけでなく (ドロップするまでに数秒間ホバーする必要がありました)、スクロールや単純なチェックボックスのチェックなど、ページ上のすべての動作が非常に遅くなりました。

ロードした直後にイベントをバインドすると、適切なパフォーマンスが得られました。

于 2011-07-26T18:45:23.307 に答える