javascript - 如何使用 for 循环进行绑定(bind)

标签 javascript jquery local-storage

当单击具有文件夹类别的按钮(所有这些按钮都是由 addf 函数创建的(在这个问题中没有说明,因为有些人说原始程序不相关))时,没有响应被单击。我有警报来测试该事件是否被调用。事实并非如此。

        $('.folder').click(function() {
      alert('works')
        fnum = $(this).attr(id);
        $('body').html("<button class='btn btn-submit' onclick='addb()'>add a bookmark</button>")
        $('body').append(localStorage.getItem(fnum + 'b'));
    })

最佳答案

只需附加新元素即可,而不是使用 html 方法,以防止删除事件监听器。另外,您可以只使用 on 而不是 bind,因为它已被弃用。如果确实需要事件委托(delegate),可以使用:

$('body').on('click', '.f', callback);

我不明白您对 localStorage 的使用,但如果您需要它,请在评论中进一步解释。

我删除了 id 和循环,转而使用类,因为它可以更轻松地处理多个元素。

function addb () { console.log('click') };

$('.f').on('click', function() {
  var button = $('<button>add a bookmark</button>');
  button.addClass('btn btn-submit');
  button.on('click', addb);
  $('body').append(button);
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<button class="f">Button class 'f'</button>

关于javascript - 如何使用 for 循环进行绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59803440/

相关文章:

javascript - 从导入的 HTML/JS 文件中提取变量

javascript:无法删除数组的某些元素

javascript - 在javascript中使用本地存储保存图像

javascript - 单击提交按钮并将数据插入 php 中的数据库表时如何显示隐藏表?

javascript - 导致内存泄漏的 jQuery 代码

javascript - 奇怪的 Javascript/JQuery 条件语句行为

caching - Bloodhound 不会将远程获取的数据缓存在本地存储中

jquery - 从 localStorage 中删除项目

javascript - 如何创建具有 dataTransfer 属性的事件?

jquery - 如何使jquery计算器刚刚执行计算后不追加数字?