我有一个按钮,我想在点击时在两个不同的功能之间切换。如第一次点击会调用功能A,第二次点击会调用功能B,第三次点击会调用功能A等。
对于html我有这样的事情:
<input type="image"onclick="test()">
对于javascript我有:
<script>
val = 1;
function test () {
if (val = 1 ) {
function1 ();
}
else {
function2 ();}
}
</script>
<script>
function function1() {
alert("1");
val = 2;}
</script>
<script>
function function2() {
alert("2");
val = 1;}
</script>
它只运行function1即使我设置val = 2,它也会运行function1。知道我做错了什么?
答案 0 :(得分:2)
您正在使用赋值运算符来检查值。请改用相等运算符:
<script>
val = 1;
function test () {
if (val == 1 ) { // compare values using == (or maybe ===)
function1();
val = 2; // use the assignment operator here
}
else {
function2();
val = 1;
}
}
</script>
<强>更新强>
正如@nnnnnn指出的那样,您可能希望直接更新test()
内的切换状态。
答案 1 :(得分:1)
如果您只需要切换按钮,则可以尝试XOR样式功能。
<script>
val = 0;
function toggle(){
val = val ^ 1; // XOR 0^1 => 1, 1^1 => 0
val == 0 ? function1(): function2();
}
</script>
或以较短的方式
$('button').on('click', function(){
// Show confirm dialog and assign to var
var decision = confirm("-- your dialog here --");
if ( decision ) {
var id = $(this).attr('id');
deleteComment(id);
} else {
// nothing happens
}
});