-1

では、jqueryを介してリンクを変更する必要があります。以下のコードは正常に機能しますが、すぐに機能します。リンクをアクティブにするには、現在のクリックではなく、次のクリックでのみアクティブにする必要があります。それが理にかなっていることを願っていますか?

助けていただければ幸いです。

 $("#m-menu").click(function(){
$("#menu").animate({right: 0}, 500, "easeInOutCirc");
$(this).text($(this).text() == 'HOME' ? 'HOME' : 'HOME');
$(this).attr('href', 'http://backtohomepage.com');
 });


編集:すべての回答者に感謝します-それは他のすべてのクリックソリューションほど単純ではなく、最初のラウンドで明確にならなかったことについて大きな謝罪をします。ソースページは次のとおりです(要件をわかりやすく説明するために、上記の.attrコードをこれに適用していません):http://joinersart.co.uk/mtest

基本的に、ユーザーが左右の矢印をクリックしてギャラリーをナビゲートすると、メニューバーが縮小するのがわかります。元に戻すには、「MENU」をクリックします。再び戻ると、「MENU」テキストが「HOME」に変わり、新しい機能が実行されます。ホームページにリンクします。もちろん、左/右矢印をもう一度クリックすると、「MENU」に戻り、機能がメニューバーの展開に戻ります。したがって、基本的に、この1つのリンクには、メニューバーが突き出ているか押し込まれているかに応じて、2つの機能(ホームページリンクとして-「HOME」またはメニューバーエキスパンダーとして-「MENU」)があります。

上記の.attrコードを適用しようとすると、次のようになります。ユーザーが[メニュー]リンクをクリックすると、メニューバーが展開される代わりに、すぐにホームページに移動します。そのため、リンクがすぐにアクティブになります。.click関数メニューバーを展開し、最初に「MENU」から「HOME」にテキストを変更するだけです。その後、ユーザーがクリックしたときにのみ、ホームページに移動します。

4

4 に答える 4

3
$('#m-menu').click(function () {
    // Do the work here
    $(this).unbind('click');
    $(this).click(function () {
          $(this).attr('href', 'http://backtohomepage.com');
    })
})
于 2012-09-24T16:39:08.203 に答える
1

あなたはこのようにそれを行うことができます:

$("#m-menu").one('click', function (){
    $("#m-menu").click(function(){
        $("#menu").animate({right: 0}, 500, "easeInOutCirc");
        $(this).text($(this).text() == 'HOME' ? 'HOME' : 'HOME');
        $(this).attr('href', 'http://backtohomepage.com');
    });
});

http://api.jquery.com/one/

于 2012-09-24T16:39:21.440 に答える
0

あなたはこれを意味しますか?

var nbclicks = 0;
$("#m-menu").click(function(){
     $("#menu").animate({right: 0}, 500, "easeInOutCirc");
     if (nbclicks++==1) {
          $(this).text($(this).text() == 'HOME' ? 'HOME' : 'HOME');
          $(this).attr('href', 'http://backtohomepage.com');
     }
 });
于 2012-09-24T16:38:01.760 に答える
0

クリックごとに1回クリックを発生させますか?

その場合は、これを行うことができます

$(function() {
    var counter = 0;
    $("#m-menu").click(function(){
        counter ++;
        if( counter % 2 == 0){
            $("#menu").animate({right: 0}, 500, "easeInOutCirc");
            $(this).text($(this).text() == 'HOME' ? 'HOME' : 'HOME');
            $(this).attr('href', 'http://backtohomepage.com');
        }
     }); 

 });

これにより、クリックするたびにコードが実行されるようになります

于 2012-09-24T16:42:12.863 に答える