我的页面上有一个布尔变量和两个按钮。布尔变量在页面加载时分配给ture,当我单击按钮A和按钮B时它应该在true和false之间切换,当单击按钮A时警告ture,当单击按钮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>
答案 0 :(得分:1)
您正在为每次通话声明新变量。您需要的是更改现有值。
$(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');
}
}
});
btw if( smth == true)
可以在您的情况下替换为if(smth)
答案 1 :(得分:1)
每次都要重新初始化变量。只需在第一次设置'值'时使用'var',而不是在其他时间使用'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');
}
}
答案 2 :(得分:0)
您需要将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');
}
}
});
答案 3 :(得分:0)
这是一个范围问题。你在定义'价值'。 (即改变它)你的功能。
删除var关键字。