我有引用html ID的变量,如
<div data-role="footer" id="ftrPaxFlight">
<h4>© 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文件吗?
答案 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() { .......
作为全球准备好的功能。