1

javascript私のプロジェクトは&スクリプトで少し過負荷にjQueryなっているので、すべてをセクションに分割しようとして問題が発生しています...カテゴリステージに分割するなど...

したがって、「現在のプロジェクト」の呼び出しであるこれら2つの呼び出しの前に、

<head>
    //i am loading the jQuery & jQuery-UI... and then :

    // right after jQuery comes my first section of project
    <script type="text/javascript" src="jsV2\jQueryAjaxNoPostBack.js"></script>
    <script type="text/javascript" src="jsV2\stage1.js" ></script>
    <script type="text/javascript">
            // is valid in stage1.js , naturally...
            var jsTxtVal = document.getElementById("TBX_TableSelectorFirstStage");

            //and that won't work
            var jQueryTxtVal= $('#TBX_TableSelectorFirstStage').val();
    </script>
</head>

そしてその分離されたファイルで私は試します

//stage1.js

//---- before ready()-------
//won't work
var jQueryTxtVal= $('#TBX_TableSelectorFirstStage').val();

//works 
var jsTxtVal = document.getElementById("TBX_TableSelectorFirstStage");

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


var TBX_TableSel = $('#TBX_TableSelectorFirstStage');
var jQueryTxtVal= $('#TBX_TableSelectorFirstStage').val();
var jsTxtVal = document.getElementById("TBX_TableSelectorFirstStage");

$('.someElement's Class).click(function () {

    // this will not work unless i will assign "jQueryTxtVal" right here .

    alert(jQueryTxtVal);


   //and... this will work no matter where the assignment took place .
   //either in main page (i call it "the globlas" of project)
   //or at the top of every "section" of project...

    alert(jsTxtVal );

   });

プレーン を使用する場合は JavaScript、すべてのメソッドに対してグローバル変数のセクションを配置することもできます...<sctipt></srctipt>メインページのjqueryの下など、ほぼすべての場所に配置できます.aspx

だから私は知りたいのですが、jQueryで「グローバル」をどのように使用できますか? またはそれはそのためのユースケースです(?)..私はそうは思いません...

...私も電話をかけてみdefer="defer"ましたstage1.js、ヘッドメインページの中で.aspx 私が試したものは何も成功しません

4

1 に答える 1

2

問題はあなたのラインだと思います:

var jQueryTxtVal= $('#TBX_TableSelectorFirstStage').val();

はjQueryドキュメントレディハンドラーの外部にあり、domのレディになる前にほぼ確実に実行されています。

ハンドラー内に配置してみてください。変数jQueryTxtValはreadyハンドラー関数に対してローカルであり、グローバルスコープを汚染しないため、これはコードにも役立ちます(本当に避けるべきもの)

単純な名前空間パターンなど、グローバルスコープの変数を最小化するのに役立つパターンはたくさんあります。しかし、本質的に、変数スコープは関数スコープです。

于 2012-12-30T18:45:02.607 に答える