我想要实现的目标是,当单击两个按钮(btn 1或btn 2)中的一个时,阵列需要重置(清空),当点击按钮添加时,需要将值1推送到数组。这是我到目前为止所得到的:
$(document).ready(function(){
var array = []
$("#btn_1").click(function(){
array = []
add_to_array(array);
})
$("#btn_2").click(function(){
array = []
add_to_array(array);
})
})
function add_to_array(array){
$("#add").click(function(){
array.push(1)
alert(array)
})
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id="btn_1">
empty array: btn 1
</button>
<button id="btn_2">
empty array: btn 2
</button>
<button id="add">
Add
</button>
我面临的问题:当我单击btn 1或btn 2多次,然后单击添加按钮时,警告会显示我点击btn1或btn 2的次数。
我正在寻找的是,无论我点击btn 1或btn2多少次,我都希望警报2只显示一次。你认为我想要实现的目标是可以实现的吗?
答案 0 :(得分:0)
您可以使用.off('click')
功能仅将事件绑定一次以添加按钮。
$(document).ready(function(){
var array = []
$("#btn_1").click(function(){
array = []
add_to_array(array);
})
$("#btn_2").click(function(){
array = []
add_to_array(array);
})
})
function add_to_array(array){
$("#add").off('click').click(function(){
array.push(1)
alert(array)
})
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id="btn_1">
empty array: btn 1
</button>
<button id="btn_2">
empty array: btn 2
</button>
<button id="add">
Add
</button>
&#13;
答案 1 :(得分:0)
这就是你需要的,我刚刚在jquery中修改了你的代码,只要空按钮点击,它就会清空数组,只有当按下添加按钮时它才会向数组和警报添加1。
array = [];
$(document).ready(function(){
$("#btn_1").click(function(){
array = []
})
$("#btn_2").click(function(){
array = []
})
$("#add").click(function(){
array.push(1)
alert(array)
})
})
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id="btn_1">
empty array: btn 1
</button>
<button id="btn_2">
empty array: btn 2
</button>
<button id="add">
Add
</button>
&#13;
希望这有帮助
答案 2 :(得分:0)
进行以下更改,您的onclick功能不应该在另一个功能中。
$(document).ready(function(){
var array = []
$("#btn_1").click(function(){
array = []
//add_to_array(array);
alert('Array emptied')
})
$("#btn_2").click(function(){
array = [];
alert('Array emptied')
//add_to_array(array);
})
function add_to_array(array){
array.push(1)
alert(array)
}
$("#add").click(function(){
add_to_array(array);
})
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<button id="btn_1">
empty array: btn 1
</button>
<button id="btn_2">
empty array: btn 2
</button>
<button id="add">
Add
</button>
答案 3 :(得分:0)
试试这个
<html>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
var array = []
$("#btn_1").click(function(){
array = [];
add_to_array(array)
})
$("#btn_2").click(function(){
array = [];
add_to_array(array)
})
$("#add").click(function(){
array = [];
array.push(1);
alert(array);
})
})
function add_to_array(array){
array.push(1);
}
</script>
<body>
<button id="btn_1">
empty array: btn 1
</button>
<button id="btn_2">
empty array: btn 2
</button>
<button id="add">
Add
</button>
</body>
</html>
希望这会有所帮助......
答案 4 :(得分:0)
我面临的问题:当我单击btn 1或btn 2多次,然后单击添加按钮时,警告会显示我点击btn1或btn 2的次数。
每次点击.btn_1
或.btn_2
时,都会调用函数add_to_array(),并且每次都在#add
上定义一个新的事件监听器。
另外,您可以在同一个功能中将1推入阵列。
click事件应该调用你的函数,而不是相反。
$(document).ready(function(){
var array = [];
$("#btn_1").click(function(){
empty_array(array);
});
$("#btn_2").click(function(){
empty_array(array);
});
$("#add").click(function(){
add_to_array(array);
alert(array);
})
});
function empty_array(array) {
array = [];
}
function add_to_array(array){
array.push(1);
}
答案 5 :(得分:-1)
阵列可以通过多种方式清空:
var arr =[];
arr.push(1);
//to empty an array
console.log(arr[0]);
arr.length=0;
console.log(arr);
输出将是:
1 []