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

Disable link clicking until page is loaded

本文关键字:加载 链接 单击      更新时间:2023-09-26

我有这样的链接:

<?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),并添加一个带有实际链接的属性数据清理网址。这是一个正确的解决方案吗?

为什么不直接使用变量来确定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() {
    }
});