首页 > 解决方案 > 点击时的焦点循环

问题描述

当我点击我的网络应用程序中的一个按钮时,会创建一个新的 div[contenteditable] 并设置焦点。有用。问题是,如果我非常快速地连续多次单击按钮,浏览器会吓坏并将焦点集中在所有创建的 div 上,并且永远不会在无限循环中停止。我怎样才能防止这种情况发生?

$(document).on('click', '.btn-create-div', function(e) {
    $.ajax(...).done(function(data) {
        $('#divs').prepend('<div contenteditable data-id="' + data.id + '">');
        $('#divs').find('div[data-id="' + data.id + '"]').focus();
    });
});

标签: javascriptjquery

解决方案


这不是一个无限循环,代码将在您单击按钮时执行多次,因此如果您快速单击它,确实需要很长时间才能赶上。您可以做的是禁用单击按钮,然后在 x 秒后启用它,如果您想防止这种情况。


推荐阅读