0

これは非常にイライラするので、誰かが助けてくれることを願っています。私は JavaScript や JQuery の優れた開発者ではありません (どちらかというとバックエンドの開発者です) が、これに対する解決策を高低で検索しましたが、何も役に立たないようです。これは私の問題の単純化されたバージョンです...

<script language="JavaScript" type="text/javascript">
fooey = 'baaa';

jQuery(document).ready(function($) {

fooey = 'New value';     

});

alert("value: " + fooey);  // I need this to be 'New value'

</script>

JQuery ブロック内で fooey 変数を変更し、JQuery ブロックの外部からこの新しい値にアクセスするにはどうすればよいですか。したがって、アラート ポップアップに「baaa」ではなく「新しい値」が表示されることを期待しています。

4

5 に答える 5

3

コードは機能しますが、次の順序で実行されます。

  1. fooey = 'baaa';

  2. jQuery(ドキュメント)を設定します。準備完了

  3. アラート("値: " + fooey);

  4. jQuery(document).ready を実行します

これは、document準備が整う (および jQuery イベントがトリガーされる) 前に JavaScript が実行されるために発生します。そのため、準備が整うfooey前に使用する場合は、に設定する必要があります。DOM の準備ができたときに使用する必要がある場合は、関数の最後で使用します。document'New value'$(document).ready

説明

Web ページをロードすると、ページ内の JavaScript が実行されます。これはコードを通過し ( の値を設定して警告する) 、やなどのfooeyイベントを設定します。これらは後で特定のイベントが発生したときに呼び出されます。これは、DOM (ドキュメント オブジェクト モデル) の準備が整ったときに発生します。.onclickwindow.onresize$(document).ready()$(document).ready()

jQuery APIから- ready() :

このイベントは、画像などのすべてのアセットが完全に受信されるまでトリガーされません。

于 2013-03-18T10:21:48.947 に答える
1

JavaScript :

var foo;
        $(function() {   
           // this is your jquery.ready() function. I have write it in another way
           foo = 'val1'
           alert(foo);
        });

      function fun(){
        foo = 'val2';
        alert(foo);
      }
      function fun2(){
        alert(foo);
      }

HTML コード:

   <input type="button" id="b1" value="b1" onclick="fun()" >
   <input type="button" id="b2" value="b2" onclick="fun2()">

ここで foo は になり、 ona global variable の値は です。foopage loadingval1

ボタンをクリックするとb1、その値は になりval2ます。ボタン をクリックすると、この値を確認できますb2

于 2013-03-18T10:29:50.860 に答える
1

準備完了関数内でアラートを定義します。その理由は、document.ready関数の前に実行されたアラートです。

<script language="JavaScript" type="text/javascript">
    fooey = 'baaa';
    jQuery(document).ready(function($) {
        fooey = 'New value';     
        alert("value: " + fooey);  // I need this to be 'New value'     
    });
</script>
于 2013-03-18T10:22:16.413 に答える
0

ready 句の要点は、ドキュメントの準備が完全に整うまで待機してから何かを実行することです。そのイベントの外側にコードを追加することで、ready イベントの前に (おそらく) ロードされます。

于 2013-03-18T10:25:49.923 に答える
-1
<script language="JavaScript" type="text/javascript">

// executed when browser interprets this line
fooey = 'baaa';  // (1st to be executed)

jQuery(document).ready(function($) {

// executed after few seconds , when DOM is ready.   (3rd one to be executed)
 fooey = 'New value';     

});


// executed when browser interprets this line (2nd one to be executed)
alert("value: " + fooey);  

</script>

最後に fooey 値はありNew value ますが、警告しているときはそうではありません

このように DOM の準備が整うまで待つことができます。

<script language="JavaScript" type="text/javascript">

fooey = 'baaa';   

jQuery(document).ready(function($) {

 fooey = 'New value';     

});

var interval = setInterval(function () {
   if ( jQuery.isReady ) {
      clearInterval(interval);
      alert("value: " + fooey);

   }   
},10)
</script>
于 2013-03-18T10:25:42.210 に答える