在加载ajax之前阻止$ element.on('click')

时间:2014-08-13 16:53:26

标签: javascript jquery ajax

我正在制作和调用ajax并将结果存储在数组中。加载第一组数据后,我使用下一个和上一个按钮来浏览数组。

我想阻止任何$(元素).on('点击')事件发生,直到我加载了第一组数据。

有没有办法做到这一点?

我已经尝试过使用

$(element).unbind('click');

当文档加载然后

$(element).bind('click');

当ajax调用成功,但仍然点击下一个或上一个链接仍然会触发我的

$('#next #prev').on('click', function () {
     //my code to navigate through the array here. 
});

任何人都有任何关于如何完成停止此事件直到ajax加载的想法?

2 个答案:

答案 0 :(得分:2)

您可以默认禁用它们,在ajax成功回调中,您可以使用以下内容打开它们:

$(element).prop("disabled", false); // Element will get enabled for clicking

我现在更新答案,因为它不适合相关人员,要禁用按钮执行此操作:

$(element).attr(“disabled”, true);

成功回调ajax调用你需要这样做:

$(element).removeAttr('disabled');

答案 1 :(得分:0)

$.ajax({
    ....
    success:function(){
        $('#next #prev').on('click', function(){
            // only ajax event complete the #prev can run this function 
        }).off('click'); // no more clickable now
    }
});

或者你可以

$('#next #prev').hide();
// done?
$('#next #prev').show();