0

私は混乱していて頭が痛いです、助けてください。

要素に「選択された」クラスがあるときに、fancybox.js に変数を送信しようとしています。これは機能します:

var showMe = true;

これも機能します:

if(a){
  var showMe = true;
}

これにより、「クラスが選択されました」というアラートが表示されます。

if($('#shuffle').hasClass('selected')){
  alert("class is selected"); 
}

Firebug もチェックインし、クラスが選択されています。

問題は、私がこれを行うとうまくいかないことです:

if($('#shuffle').hasClass('selected')){
    var showMe = true;  
}

showMe が true に設定されていません。

私はそれが簡単でなければならないことを知っています。助けてくれてありがとう。

編集 これが機能したものです。何らかの理由で、選択されたクラスに変更すると、showMe = true が設定されませんでした。代わりにボタンに .click 関数を追加したところ、機能しました。理由はわかりませんが、私がこれを読むべき場所がわかっている場合は、ここのリンクを貼り付けてください。

$(function() {
  $("#shuffle").click(function(){

    showMe = true; 
    console.log( showMe);
  });
});

回答してくれたすべての人に感謝します。あなたの回答がうまくいかなかった理由は、質問の仕方に関係していると思います。乾杯

4

4 に答える 4

2

を使用var showMe = 'true'すると、ローカル変数を設定できます。関数の外でその変数を使用したい場合はshowMe = 'true'、グローバル変数を設定する<を使用してください。

このような

if($('#shuffle').hasClass('selected')){
    showMe = true;  
}
于 2013-03-08T07:43:56.590 に答える
1

ドキュメントの準備が整う前に変数を宣言します。そうすれば、グローバルになります。

<script type="text/javascript">
    var showMe = false;
    jQuery(document).ready(function($) {
        console.log( showMe );
        if ( $('#shuffle').hasClass('selected') )
        {
            showMe = true;
            console.log( showMe );
        }
    });
</script>
于 2013-03-08T07:45:27.380 に答える
1

多分あなたはこれを見ているでしょう:

var showMe = ($('#shuffle').hasClass('selected')) ? true : false;
alert(showMe);

それを実行するときは、DOM の準備ができていることを確認してください。

于 2013-03-08T07:28:06.303 に答える
0

試す

if($('#shuffle').hasClass('selected')){
    showMe = true;  
}

私はshowMe(キーワードを削除することにより)グローバルスコープに移動しましたvar。今では、どこにアクセスしていても、

if(typeof(window.showMe) != 'undefined') 
 alert(showMe);
于 2013-03-08T07:40:05.103 に答える