0

私は現在、ユーザーが特定のオブジェクトの上にマウスを置いたときに、ユーザーのマウスの横にツールチップが表示されるようにするいくつかの JQuery コードに取り組んでいます。約 13 個の固有のツールチップがあり、それぞれにさまざまなトリガーがあります。異なる識別子を持つほぼ同一の関数を 13 セット作成する必要がないように、関数にデータを渡す方法を見つけるのに少し苦労しています。私が使用しているコードは次のとおりです。これは機能しますが、複数回コピーする必要があります。

jQuery(document).ready(function($){

function phpTooltipPosition(event) {
    var phptooltipX = event.pageX - 8;
    var phptooltipY = event.pageY + 8;
    $('#marpole').css({top: phptooltipY, left: phptooltipX});
}

function phpMethod(event) {
    $('#marpole').removeClass('hidden')
    phpTooltipPosition(event);
}

function phpHide() {
    $('#marpole').addClass('hidden');
}


$('.marpole').on({
    mousemove : phpTooltipPosition,
    mouseenter : phpMethod,
    mouseleave: phpHide
});
});

これについて読んでいたとき、.on() のイベント マップを使用すると、関数にデータを渡すことができなくなることを読みました...これに対する回避策はありますか?

4

2 に答える 2

0

ロジックとイベントを区別できるように、次のスタイルでコーディングしてみてください。

// Ensures code inside this function is called once jQuery is loaded.
jQuery(function() {

    $('div').click(function() {
        functionToCall.apply(this, arguments);
    });

});


var functionToCall = function() {
    // Actual code here
};

1 つのマスター イベントから複数のイベントが必要な場合は、jQuery の.on()関数を使用してそれを処理することもできます。

$('#outer-wrapper').on('click', '.div-you-want-evented', function() {
    // Actual code here
})

それはあなたの質問に答えていると思いますか?質問に基づいて必要なものが 100% わかりません。

于 2013-04-24T21:44:59.370 に答える