2

続行ボタンには、無効になっている理由を示すホバー イベントがあります。唯一の問題は、ボタンを有効にしたときにホバーイベントを削除できないことです....

これは動作します

function disable_continue_button(){
    $('#frame_2 > .next')
        .addClass('faded tt')
        .hover(function(){
            $hovered = $(this);
            //tooltip?
            tip = $('.tip.notification.information');
            tip.find('div').html($hovered.attr('tt'));
            tip.fadeIn(150);
        },
        function() {
            tip.hide();   
        })
        .mousemove(function(e) {
            var mousex = e.pageX +40; //Get X coodrinates
            var mousey = e.pageY -20; //Get Y coordinates
            tip.css({top: mousey, left: mousex });
        });    
}

これはうまくいきません

function enable_continue_button(){
    $('#frame_2 > .next')        
        .unbind('mouseenter mouseleave mousemove')
        .removeClass('faded tt');    
}

クラスは正常に削除されますが、ホバーツールチップは削除されません...

4

2 に答える 2

5

mouseenter、mouseleave、mouseover、および mouseout のバインドを解除してみてください。

$('#frame_2 > .next').unbind('mouseenter mouseleave mouseover mouseout');

編集:

mouseenter と mouseleave だけをバインド解除するだけで十分です。

これが機能することを示す例を次に示します。上記の 4 つのイベントがバインドされていない場合、ツールヒント機能は削除されます。

.hover(fnEnter, fnLeave)は基本的に の省略形です.mouseenter(fnEnter).mouseleave(fnLeave)

すべてのブラウザーがこれら 2 つのイベントをネイティブにサポートしているわけではないため (私の記憶が正しければ、IE だけがサポートしています)、 にmouseenter()マップしmouseover()、 にmouseleave()マップしmouseout()、それぞれの場合にイベントをエミュレートする追加のロジックを使用します。

于 2011-02-06T18:49:28.980 に答える
0

この関連する質問は、すべてのバインドを解除するのに役立つ場合があります。その後、必要なものを再バインドできますか?jqueryを使用してすべてのイベントのバインドを解除する方法

于 2011-02-06T17:28:50.863 に答える