0

私はhtmlIDのようなものを参照する変数を持っています

<div data-role="footer" id="ftrPaxFlight">
    <h4>&#169; 2012, BT</h4>
</div>

そして私は次のようなjQueryを使用してhtmlに埋め込まれたjavascriptを持っています

<script>
  $(document).ready(function() {
            var ftrPaxFlight = $('#ftrPaxFlight');
    var butMainLogin = $('#butMainLogin');
    var butMainSetup = $('#butMainSetup'); 
       .....
      butMainLogin.bind("click", function() {
           getChangeFtr();
    });

getChangeFtrは、外部の.jsファイルにある関数です。UIからロジックを分離したい。このファイルはタグにも含まれています

function getChangeFtr(){
     alert("Ftr will be changed " + ftrPaxFlight);
 }

ボタンがクリックされると..メソッドgetChangeFtr()が呼び出されると、エラーが発生します

TypeError-ftrPaxFlightは未定義です。

誰かがjQueryを使用して変数を複数のjavascriptファイルに渡す正しい方法を教えてもらえますか?

4

3 に答える 3

2

これを行うには多くの方法があり、「正しい方法」はありません。グローバル変数、グローバル名前空間/シングルトンを使用するか、引数を使用して関数間でオブジェクトを渡すことができます。あなたの場合、私は引数を使用します:

function getChangeFtr( elem ){
    alert("Ftr will be changed " + elem);
}

と:

butMainLogin.bind("click",function() {
    getChangeFtr( ftrPaxFlight );
});
于 2012-08-16T15:36:05.953 に答える
1

ftrPaxFlight変数は、ドキュメントレディ関数のスコープ内で宣言されます。グローバルメソッドが変数にアクセスするには、グローバルスコープで宣言する必要があります。

var ftrPaxFlight;
$(document).ready(function(){
    ftrPaxFlight = $('#ftrPaxFlight');
    //....etc
}

function getChangeFtr(){
    alert("Ftr will be changed " + ftrPaxFlight);
}
于 2012-08-16T15:37:24.200 に答える
0

使用する

var ftrPaxFlight = $('#ftrPaxFlight').val()

宣言します

<script>
var ftrPaxFlight;
$(document).ready(function() { .......

準備完了機能の前にグローバルとして。

于 2012-08-16T15:35:01.243 に答える