0

親愛なるコミュニティ、私はあなたの助けを求めます、ここに松葉杖があります、コンテンツを含むモーダルウィンドウが表示されないのは奇妙です、おそらくフレームの範囲外で、ローカルで動作します。問題は、ユーザーが料理人を持っている場合に私のウィンドウがまだ表示されないようにする方法です。if(){}を追加する方法がわかりません。すべてを正しく行うようです。それでも、条件を追加した後、ファイアバッグにエントリエラー:Uncaught ReferenceError:getCookieValueが定義されていません

しかし、このデザインは機能しません(体内の位置):

<script type="text/javascript">
    $(document).ready(function() {
        var getCookieValue = $.cookie("visit");
        if (getCookieValue == true) {
            $("a.gallery2").fancybox(
                {                       
                    "padding" : 20, 
                    "imageScale" : false, 
                    "zoomOpacity" : false,  
                    "zoomSpeedIn" : 1000,   
                    "zoomSpeedOut" : 1000,  
                    "zoomSpeedChange" : 1000,
                    "frameWidth" : 700,
                    "frameHeight" : 600, 
                    "overlayShow" : true,
                    "overlayOpacity" : 0.8, 
                    "hideOnContentClick" :false,        
                    "centerOnScroll" : false                
            }).click();
        }
    });

</script>
4

3 に答える 3

1

変数が未定義の場合、スクリプトはそのように記述できなくなります。

これを試して:

<script type="text/javascript">
    $(document).ready(function() {
        var window.getCookieValue = $.cookie("visit");
        if (window.getCookieValue == true) {
            $("a.gallery2").fancybox(
                {                       
                    "padding" : 20, 
                    "imageScale" : false, 
                    "zoomOpacity" : false,  
                    "zoomSpeedIn" : 1000,   
                    "zoomSpeedOut" : 1000,  
                    "zoomSpeedChange" : 1000,
                    "frameWidth" : 700,
                    "frameHeight" : 600, 
                    "overlayShow" : true,
                    "overlayOpacity" : 0.8, 
                    "hideOnContentClick" :false,        
                    "centerOnScroll" : false                
            }).click();
        }
    });

</script>
于 2012-12-12T07:00:32.303 に答える
1

Cookieが存在する場合にのみfancyboxを表示するかどうかは、私にはわかりませtrueん。Cookieの値がtrueである場合にのみfancyboxを表示する必要があると想定して、これを試してください

<script type="text/javascript">
$(document).ready(function() {
  // create cookie "visit"
  var getCookieValue = $.cookie("visit");
  // check if cookie value = true
  if (getCookieValue == "true") {
       $("a.gallery2").trigger("click");
  }
  $.cookie("visit", "true", { expires: 7 }); // set the number of days for cookie
  $("a.gallery2").fancybox({                       
     // API options here
  }); // bind fancybox
});
</script>

この場合、ファンシーボックスは最初の訪問時には表示されませんが、Cookieが有効である間は常に2回目以降に表示されます。

一方、最初の訪問時にのみfancyboxを表示する必要がある場合は、次のことを試してください。

<script type="text/javascript">
$(document).ready(function() {
  // create cookie "visit"
  var getCookieValue = $.cookie("visit");
  // check if cookie value = true
  if (getCookieValue == "true") {
      return false
  } else {
      $("a.gallery2").trigger("click");
  }
  $.cookie("visit:, "true", { expires: 7 }); // set the number of days for cookie
  $("a.gallery2").fancybox({                       
     // API options here
  }); // bind fancybox
});
</script>

どちらの例でも、コードのどこかにこのhtmlがあると想定されています。

<a class="gallery2" href="path/target"></a>
于 2012-12-12T08:19:09.887 に答える
0

同僚!解決策を見つけました:

変数はグローバルではないため、変数getCookieValueと比較することはできませんが、条件内のCookieを一度読み取り、条件の値と比較することがわかります。

解決策は次のとおりです。

$(document).ready(function() {

    $("a.gallery2").fancybox( {
        "padding" : 20, 
        "imageScale" : false,
        "zoomOpacity" : false,
        "zoomSpeedIn" : 1000,
        "zoomSpeedOut" : 1000,
        "zoomSpeedChange" : 1000,
        "frameWidth" : 700,
        "frameHeight" : 600,
        "overlayShow" : true,
        "overlayOpacity" : 0.8,
        "hideOnContentClick" :false,
        "centerOnScroll" : false
    });

if ($.cookie("visit") == "true") {
    $("a.gallery2").fancybox().click();
}

});
于 2012-12-12T08:12:21.970 に答える