[英]Variable in handler not being reassigned
我的页面上有一个布尔变量和两个按钮。 布尔变量在页面加载时分配给ture,当我单击Button A和Button B时,它应该在true和false之间切换;单击Button A时,它会发出警报;单击Button B时,它会发出false警报。 我的代码的问题是,无论单击哪个按钮,它都发出警告。 我可以将警报放在onclick函数中,但我不想这样做。 我想使用布尔变量。
这是代码。
<div><button type="button" id="btnA">Button A</button></div>
<div><button type="button" id="btnB">Button B</button></div>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
var value = true;
$('#btnA').click(function(){
var value = true;
myFunction();
});
$('#btnB').click(function(){
var value = false;
myFunction();
});
function myFunction(){
if (value == true){
alert('true');
}else{
alert('false');
}
}
});
</script>
您在每次调用时都声明新变量。 您需要更改现有值的值。
$(document).ready(function(){
var value = true;
$('#btnA').click(function(){
value = true; //no var keyword
myFunction();
});
$('#btnB').click(function(){
value = false; //no var keyword
myFunction();
});
function myFunction(){
if (value == true){
alert('true');
}else{
alert('false');
}
}
});
和顺便说一句if( smth == true)
可以用if(smth)
替换
您每次都在重新初始化变量。 第一次设置“值”时只需使用“ var”,而其他时候则不要。
var value = true;
$('#btnA').click(function(){
value = true;
myFunction();
});
$('#btnB').click(function(){
value = false;
myFunction();
});
function myFunction(){
if (value == true){
alert('true');
}else{
alert('false');
}
}
您需要将value
传递给函数
$(document).ready(function(){
var value = true;
$('#btnA').click(function(){
var value = true;
myFunction(value);
});
$('#btnB').click(function(){
var value = false;
myFunction(value);
});
function myFunction(value){
if (value == true){
alert('true');
}else{
alert('false');
}
}
});
这是一个范围问题。 您正在定义“价值”。 (即对其进行更改)。
删除var关键字。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.