0

私は完全に機能するこれらの関数を使用しています:

    $(document).on('click', '.profile li', function(e) {
            //Alot of cool code
    });
    $(document).on('mouseenter', '.profile li', function(e) {
            //Alot of cool code
    });
    $(document).on('mouseleave', '.profile li', function(e) {
            //Alot of cool code
    });
    $(document).on('keydown', '.profile li', function(e) {
            //Alot of cool code
    });

しかし、私はそれらをこれに組み合わせたかった:

    $('.profile li').on({
        mouseenter: function (e) {
             //Alot of cool code
        },
        mouseleave: function (e) {
             //Alot of cool code
        },
        click: function (e) {
            //Alot of cool code
        },
        keydown: function (e) {
            //Alot of cool code
        }
    });

ただし、それらはdomの後に作成される要素に依存しているため、結合されたコードは機能しません。だから私の質問はこれです、それらを2番目の方法に組み合わせて、それでもそれらをdomの後に作成されたクラスで動作させる方法はありますか?また、それらを組み合わせることには本当に意味がありますか?どこかで読んだほうがいいのを覚えているようですが、それが夢だった理由や夢だったのかどうかは思い出せません...

4

3 に答える 3

3

セレクターを2番目のパラメーターとして渡すだけです。最も近い静的な親を使用する方が、ドキュメントオブジェクトを使用するよりも効率的であることに注意してください。

$(document).on({
    mouseenter: function (e) {
         //Alot of cool code
    },
    mouseleave: function (e) {
         //Alot of cool code
    },
    click: function (e) {
        //Alot of cool code
    },
    keydown: function (e) {
        //Alot of cool code
    }
}, '.profile li');
于 2012-12-14T22:32:27.130 に答える
0

私は数日前に同等の質問をしました。

私の答えは非常に単純です。回避策を使用してください-関数、要点

したがって、次のように簡単に使用できます。

$(document).act(
    ['mouseenter', 'selector1', function() {}],
    ['mouseleave', 'selector2', function() {}],
    ['mousedown', 'selector3', function() {}],
    ['mouseup', 'selector4', function() {}]
);

または、スクリプトなしで簡単に:

$(document).on({
    mouseenter: function() {},
    mouseleave: function() {},
    mousedown: function() {},
    mouseup: function() {}
}, "selector");

ただし、これは、これらすべてのイベントに同じセレクターを使用することを前提としています。

于 2012-12-14T22:31:49.873 に答える
0

.profile静的要素の場合は、次のことを試してください。

$('.profile').on({
        mouseenter: function (e) {
             //Alot of cool code
        },
        mouseleave: function (e) {
             //Alot of cool code
        },
        click: function (e) {
            //Alot of cool code
        },
        keydown: function (e) {
            //Alot of cool code
        }
    },'li');​​​​
于 2012-12-14T22:32:41.997 に答える