我在jquery中有以下代码。
$(document).ready(function () {
console.log('Hello');
var uploadButton = $('#upload-button');
uploadButton.on('click', function () {
uploadButton.unbind('click');
progressBar();
uploadButton.bind('click');
});
});
function progressBar(){
var element = document.getElementById('bar');
var width = 1;
var id = setInterval(addFrame, 25);
function addFrame() {
if(width == 100){
clearInterval(id);
element.style.width = 0;
return true;
}
width += 1;
element.style.width = width + '%';
}
}
我尝试做的是在按下HTML button
项目时调用进度棒的功能,但在当前调用完成之前还尝试禁用任何调用。最初的想法是在按下click
事件时取消绑定,执行该函数,然后再次将click
绑定到同一个元素,但到目前为止,我唯一得到的只是一个调用progressBar
的{{1}}之后,button
仍未绑定click
我做错了什么?
谢谢。
答案 0 :(得分:0)
您的代码的问题是unbind方法,此方法不会将事件置于开/关,否则它会删除与该按钮关联的函数,unbind不是解决该问题的方法。 对于临时删除点击事件,我建议这样做:
使用$('#myButton').prop('disabled', true)
并在使用$('#myButton').prop('disabled', false)
我希望这可以帮到你