2011-11-09 11 views
0

私のウェブサイトでjquery cookieプラグインを使用しようとしています。私がやっているのは、ある時間のページロードの待ち時間を見せて、firstdivを削除して、secdivを表示し、もう一度待ってからsecdivを削除し、最後にmaindivを表示することです。これはうまくいきますが、最初にホームページにアクセスしたときにのみ発生するようにしたいが、そのアクティブなセッション中のすべての後続の訪問ではこれを実行しないようにしてください。この問題を解決するjqueryを試してください。ここに私が今持っているとdoesntはうまくいくようです。それはすべての機会にmaindivをロードするだけです。あなたは私を正しい方向に入れてください。jquery cookie asp.net

$(document).ready(function() { 
     var visitcookie = $.cookie('visitcookie', 'first', { Path: "/", expires: 0 }); 
     if (visitcookie == 'first') { 
      document.getElementById('secdiv').style.visibility = "hidden"; 
      document.getElementById('maindiv').style.visibility = "hidden"; 
      setTimeout(function() { 
      $("#firstdiv").fadeOut("slow", function() { 
      $("#firstdiv").remove(); 
      document.getElementById('secdiv').style.visibility = "visible"; 
      $("#secdiv").show(); 
      $("#secdiv").fadeOut("slow", function() { 
      $("#secdiv").remove(); 
      document.getElementById('maindiv').style.visibility = "visible"; 
      $("#maindiv").show(); 
      $.cookie('visitcookie', 'second'); 
         }); 
        }); 
       }, 2000); 
      } 

      else { 
       document.getElementById('firstdiv').style.visibility = "hidden"; 
       document.getElementById('secdiv').style.visibility = "hidden"; 
       document.getElementById('maindiv').style.visibility = "visible"; 
      } 
     }); 
+0

私は、クッキーの値が「second」に変更されていることに気付きました。 – sampath

+0

申し訳ありません私はクッキーの値が 'second'.whatに変更されていないことに気付いた問題がありますか? – sampath

答えて

0

を試してみました: visitcookie =最初の;有効期限が切れる=日... はそう私がやったことは、「= visitcookie」削除するサブ12文字で、そしてちょうど「最初」を返すの希望このことができます。..

$(document).ready(function() { 
    var visitcookie = $.cookie('visitcookie'); 
    switch(visitcookie) 
    { 
     case 'first': 
     document.getElementById('secdiv').style.display = 'none'; 
     document.getElementById('maindiv').style.display = 'none'; 
     setTimeout(function() { 
      $("#firstdiv").fadeOut("slow", function() { 
       $("#firstdiv").remove(); 
       document.getElementById('secdiv').style.visibility = "visible"; 
       $("#secdiv").show(); 
       $("#secdiv").fadeOut("slow", function() { 
        $("#secdiv").remove(); 
        document.getElementById('maindiv').style.visibility = "visible"; 
        $("#maindiv").show(); 
        $.cookie('visitcookie', 'second', { expires: 7 , Path: "/"}); 
        }); 
       }); 
      }, 2000); 
     break; 

     case null: 
      document.getElementById('secdiv').style.display = 'none'; 
      document.getElementById('maindiv').style.display = 'none'; 
      setTimeout(function() { 
       $("#firstdiv").fadeOut("slow", function() { 
        $("#firstdiv").remove(); 
        document.getElementById('secdiv').style.visibility = "visible"; 
        $("#secdiv").show(); 
        $("#secdiv").fadeOut("slow", function() { 
         $("#secdiv").remove(); 
         document.getElementById('maindiv').style.visibility = "visible"; 
         $("#maindiv").show(); 
         $.cookie('visitcookie', 'second', { expires: 7 , Path: "/"}); 
         }); 
        }); 
       }, 2000); 
      break; 
     default: 
      document.getElementById('firstdiv').style.display = 'none'; 
      document.getElementById('secdiv').style.display = 'none'; 
      document.getElementById('maindiv').style.visibility = "visible"; 
     break; 
    } 

}); 

*ページのロードの編集キャプチャークッキーの値を次に私はスイッチを行ったので、値がnullの場合は、表示のプロセスを経て、それが2番目にクッキーの値を設定する必要があります..あなたが別のページを訪問し、 0になっても正しくテストできなかったので、 "expire"を7に変更しました。

+0

ああ、スイッチはオプションです。私はスイッチをもっと頻繁に使いますが、あなたは持っていません。 – Andres

+0

@ Andres - ありがとう。私が達成したいのは、ユーザーがホームページを最初に訪れたとき、私はfirstdivを表示し、次にsecdivを表示し、最後に両方のdivを削除してmaindivを表示したいときです。ユーザーがウェブサイトの他の部分に行って再びホームページに戻ると、彼は直接maindivを見るべきです。上記のコードはこれを達成するのに役立ちますか?私に教えてください..ありがとう! – sampath

+0

そこに$ .cookie( 'visitcookie')もあります。文字列全体ではなく値だけを返すので、部分文字列アクションは必要ありません; – Andres

0

あなたはそれを返しvisitcookieにアラート行う場合は

document.getElementById('firstdiv').style.display = 'none'; 
document.getElementById('secdiv').style.display = 'none'; 
+0

はい、もう一度やり直します – sampath