0

私は現在、私の最初の Web サイトに取り組んでいますが、この jquery の部分でわずかな問題が発生しました... ページは次のとおりです。

http://beelinetest.site50.net/the_arts_and_culture_in_worcester.html

私のウェブサイトの完了したページ全体にロールオーバー効果があります (リンクにカーソルを合わせると、単語がわずかに右に移動します)。これは、イベント プログラム ページでよりよく確認できます。

しかし、このページでは多くの jquery が実行されています... クリックすると、単語がページから左に移動します。しかし、マウスが上にあるため (リリース時に単語を右に戻す)、単語は画面上で元の場所に戻ります。

私のコードを自由に調べてください。本当に感謝しています-皆さんが素晴らしいことを知っているので、事前に感謝します! トム

競合する 2 つのコードを次に示します。

$("#exploretext").click(function(){ 
$(".moveeverythingleft").animate({"left":"-220px"}, 400);
return false;
});



$("#exploretext").hover(function(){ 
$("#exploretext").animate({"left":"227px"}, 50);
}, function(){
$("#exploretext").animate({"left":"217px"}, 150);
});
4

2 に答える 2

1

これにより、クリック イベントの後にホバー効果のバインドが解除されます。

$("#exploretext").on("click",function() 
{ 
    $(this).off("hover", "**");
    $(".moveeverythingleft").animate({"left":"-220px"}, 400); return false; 
});

$("#exploretext").on('hover',function()
{ 
    $("#exploretext").animate({"left":"227px"}, 50); }, function()
    { 
        $("#exploretext").animate({"left":"217px"}, 150); 
    });
});

後で再バインドするか、別のものをバインドする必要がある場合があります。それは、何を達成したいかによって異なります。

+= を使用して、別のアニメーション関数を使用する方が簡単な場合があります。

$("#exploretext").animate({"left":"+=10px"}, 50, 'linear');

編集 :

私はあなたのコードを読んでいます.マークアップとcssは少し混乱しています.それはあなたの仕事を必要以上に難しくしていると思います.

最初に HTML と CSS を消去してから、JS 部分を処理することをお勧めします。

于 2012-04-08T18:44:57.043 に答える
0

あなたができることは、ボタンの状態を..のような変数に保存することです.

var position = "LEFT OR RIGHT";

次に、ボタンを左に送信すると、変数が左に変更されます。ホバーイベントで値を確認し、位置が左の場合はイベント全体を実行せず、位置が右の場合はイベントを実行します。

function OnExploreClick(){
position = 'left';
//ur code
}

function OnUnExploreClick()
{
//put the button to right side// ur code
then position = 'right';
}
function OnHover()
{
if (position == 'right')
{
//execute ur code
}
}
于 2012-04-08T18:53:54.720 に答える