禁用链接单击,直到加载页面

时间:2014-12-08 21:08:43

标签: javascript jquery ajax

我有以下链接:

<?php echo 
    anchor("$controller_name/cleanup",
    '<i class="fa fa-undo hidden-lg fa fa-2x tip-bottom" data-original-title="'.lang('items_cleanup_old_items').'"></i><span class="visible-lg">'.lang("items_cleanup_old_items").'</span>',
    array('id'=>'cleanup', 
        'class'=>'btn btn-warning','title'=>lang("items_cleanup_old_items"))); 
?>

我在$(document).ready()中有javascript绑定到锚点并将点击覆盖为ajax调用函数并执行event.preventDefault();以防止链接被导航到。

我遇到的问题是如果页面还没有完全加载,他们点击链接;他们去了ajax页面(这是一堆json)。

我正在考虑的解决方案是将锚更改为javascript:void(0)并使用实际链接添加属性data-cleanup-url。这是一个合适的解决方案吗?

1 个答案:

答案 0 :(得分:1)

为什么不使用变量来确定window.onload是否已完成,并根据状态指向新功能?

var isPageLoaded = false;

$(window).load(function(){
    isPageLoaded = true;
});

$(document).ready(function(){
    $('a').on('click', function (evt){
        evt.preventDefault();

        if (isPageLoaded) doAjaxThing();
        else doNothing();
    });

    function doAjaxThing() {

    }

    function doNothing() {

    }

});