Javascript Bind和Unbind函数调用

时间:2017-05-07 13:35:37

标签: jquery

我在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 我做错了什么?
谢谢。

1 个答案:

答案 0 :(得分:0)

您的代码的问题是unbind方法,此方法不会将事件置于开/关,否则它会删除与该按钮关联的函数,unbind不是解决该问题的方法。 对于临时删除点击事件,我建议这样做:

  • 使用$('#myButton').prop('disabled', true)

  • 停用HTML按钮
  • 并在使用$('#myButton').prop('disabled', false)

  • 的进度条功能的回调函数之后启用它

我希望这可以帮到你