2016-05-13 28 views
1

以下代碼將以FirstName姓氏寫入X年。但是,如果我想拉出按鈕中的jquery變量val()變量,並使它們成爲全局變量,則不起作用。我不知道爲什麼。爲什麼我不能把這些變量放在全局範圍內?它只適用於本地。

function Household (firstName, lastName, age){ 


    var _list = { 
     "_fname": firstName, 
     "_lname": lastName, 
     "_age": age 
    }; 

this.addPerson = function() { 

    var writeIn = _list._fname + " " + _list._lname + " is " + _list._age + " years old."; 

    return writeIn; 
} 

} 



$('#btnSub').click(function(){ 

    var _getFName = $('#enterFName').val(); 
    var _getLName = $('#enterLName').val(); 
    var _getAge = $('#enterAge').val(); 

    var nuHouse = new Household (_getFName, _getLName, _getAge); 

    var newNuHouse = nuHouse.addPerson(); 

    $('#insertAnswer').html(newNuHouse); 

}); 

爲什麼不工作?我希望將這些值設置爲全局值,以便通過其他按鈕點擊訪問它們。

function Household (firstName, lastName, age){ 


var _list = { 
    "_fname": firstName, 
    "_lname": lastName, 
    "_age": age 
}; 

this.addPerson = function() { 

    var writeIn = _list._fname + " " + _list._lname + " is " + _list._age + " years old."; 

    return writeIn; 
} 

} 

var _getFName = $('#enterFName').val(); 
var _getLName = $('#enterLName').val(); 
var _getAge = $('#enterAge').val(); 

var nuHouse = new Household (_getFName, _getLName, _getAge); 


$('#btnSub').click(function(){ 

    var newNuHouse = nuHouse.addPerson(); 

    $('#insertAnswer').html(newNuHouse); 

}); 

預先感謝您!

+0

https://jsfiddle.net/mohamedyousef1980/m78r173j/ –

+0

無法複製it.See這個演示 https://jsfiddle.net/vasi_32/mvwr4cq6/ – brk

回答

2

底部代碼不起作用,因爲您在腳本執行時獲取了值,而不是單擊該按鈕時的值。

您可以繼續在全局聲明變量,但將賦值移至事件偵聽器,但通常減少全局變量的數目是有益的。如果你讓我們知道你打算如何使用這些值,我們可能會提出一個更好的方法。

0

您需要在事件點擊時更新這些變量的值。 因爲在第一次頁面加載時,這些輸入沒有任何價值。

var _getFName; 
var _getLName; 
var _getAge; 

var nuHouse; 


$('#btnSub').click(function(){ 
    _getFName = $('#enterFName').val(); 
    _getLName = $('#enterLName').val(); 
    _getAge = $('#enterAge').val(); 

    nuHouse = new Household (_getFName, _getLName, _getAge); 
    var newNuHouse = nuHouse.addPerson(); 

    $('#insertAnswer').html(newNuHouse); 

}); 
相關問題