[英]Get javascript variable value from another function
我宣布第一。點擊功能的變量,但我的第二個。點擊我想獲得的第一個變量的值,但它沒能找到它,因為它在不同的功能之中。
如何設置全局變量或其他函數也可以使用該值的東西?
$('input[type="checkbox"]').click(function(){
var checked = 0;
if($(this).prop("checked") == true){
var checked = 1
console.log('checked');
console.log(checked);
}
else if($(this).prop("checked") == false){
var checked = 0
console.log('not checked');
console.log(checked);
}
});
$('#button-cart').click(function(){
if(checked == 1){
alert('can continue fine');
} else if(checked == 0){
alert('cannot continue');
}
})
錯誤: 未捕獲ReferenceError:未定義
為了避免污染全局范圍,最佳實踐是在閉包中聲明檢查的變量,以便只有事件處理程序才能訪問它。
(function() {
var checked; // No one outside of this immediately invoked function can see the checked variable.
$('input[type="checkbox"]').click(function(){
checked = 0;
if($(this).prop("checked") == true){
checked = 1
console.log('checked');
console.log(checked);
}
else if($(this).prop("checked") == false){
checked = 0
console.log('not checked');
console.log(checked);
}
});
$('#button-cart').click(function(){
if(checked == 1){
alert('can continue fine');
} else if(checked == 0){
alert('cannot continue');
}
})
}());
這樣,您的兩個點擊處理程序都可以看到checked
變量,但其他任何人都無法訪問它。
在函數外部聲明checked
-這使其可以在全局范圍內訪問。 然后刪除函數內的var
語句,否則您將在函數范圍內創建一個新變量。 該代碼將起作用:
var checked = 0;
$('input[type="checkbox"]').click(function(){
if($(this).prop("checked") == true){
checked = 1
console.log('checked');
console.log(checked);
}
else if($(this).prop("checked") == false){
checked = 0
console.log('not checked');
console.log(checked);
}
});
$('#button-cart').click(function(){
if(checked == 1){
alert('can continue fine');
} else if(checked == 0){
alert('cannot continue');
}
})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.