首页 > 解决方案 > 首次加载时单击未绑定到按钮

问题描述

我的应用程序在第一次运行时随机发生问题(有时它仍然有效)。浏览器刷新后,它解决了这个问题,所以我相信它是一个竞争条件。但是,我将事件绑定到文档,并且它也在文档中准备好,所以我不知道如何解决它。

我在页面加载期间生成的类 .inactivetab 中有一系列选项卡按钮。单击时,它应该调用 methods.setTab 将类更改为 .activetab 并更改查看的页面。通常所有的按钮都能正确地获取事件并且这有效。但有时,一些按钮(不是全部)不起作用。这是下面的代码片段:

$(document).ready(function(){
    $(document).on('click', '.inactivetab', function () {
        methods.setTab($(this).attr('id').replace('-ButtonId', ''));
    });     
})

这个片段是在程序中创建按钮的原因(其中 module[] 是从形成按钮的数据库返回的页面/选项卡数组):

var.modules.forEach(module => {
                tab_HTML += "<button id=\"" + module[1] + "-ButtonId\" type=\"button\" class=\"inactivetab\" style=\"display:block\">" + module[2] + "</button>";
            })

我认为准备好文档并将事件委托给文档将是此处需要的修复,但在首次打开应用程序时仍然面临并非所有按钮都有效的问题。任何其他想法都会有很大帮助。

标签: javascriptjquerynode.jsrequirejs

解决方案


推荐阅读