多个JS文件中的JQuery和变量

时间:2012-08-16 15:33:01

标签: javascript jquery

我有引用html ID的变量,如

<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文件吗?

3 个答案:

答案 0 :(得分:2)

有很多方法可以做到这一点,而且没有“正确的方法”。您可以使用全局变量,全局命名空间/单例或简单地使用参数在函数之间传递对象。在你的情况下,我会使用参数:

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

butMainLogin.bind("click",function() {
    getChangeFtr( ftrPaxFlight );
});

答案 1 :(得分:1)

您的ftrPaxFlight变量在文档就绪函数的范围内声明。您需要在全局范围内声明它,以便全局方法访问变量。

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

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

答案 2 :(得分:0)

使用

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

并声明

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

作为全球准备好的功能。