1

jquery関数を思い通りに動作させるのに苦労しています。ホバーハンドラーが複数回登録されているため、繰り返し起動していると思いますが、適切に行う方法がわかりません。どんな援助でも大歓迎です。

function hoverOptions(target)
{
 var option = target.children('.option');
 var tooltip = option.children('.tooltip');

 option
 .fadeToggle(150, function() { console.log('option'); })
 .hover(function() { console.log('tooltip'); });
};

$(document).on('hover', '#myElement', function()                
{      
 $(hoverOptions($(this)));
});
4

2 に答える 2

0

このイベントを 2 回登録していると思います。

function hoverOptions(target)
{
 var option = target.children('.option');
 var tooltip = option.children('.tooltip');

 option
 .fadeToggle(150, function() {console.log('option');)} 
 .hover(function(){console.log('tooltip')});
};

$(document).on('hover', '#myElement', function()                
{
     hoverOptions($(this));
};

メソッドを jQuery 名前空間で宣言する場合:

$.hoverOptions = function(target){ //Your code }
于 2012-08-07T16:28:30.940 に答える
0

ホバーイベントを呼び出したいと思われるときに、ホバーイベントを登録しています。

また、1 つの要素に対してのみイベントを委任しています。イベント委任は、多くの要素がイベントに関与する場合にのみ良いアイデアです。

あなたが何を望んでいるのかは完全には明らかではありませんが、私はこれを推測しました (縮小されたコードに注意してください)。

//on hover to #myElement, fade toggle the .option child
$('#myElement').on('hover', function() {;
    $(this).children('.option').fadeToggle(150, function() {
        console.log('option');
    });
});

//on hover to .option elements, toggle the .tooltip child
$('.option').hover(function() { $(this).children('.tooltip').toggle(); });
于 2012-08-07T16:29:37.047 に答える