javascript - 点击触发事件太多次 - Jquery

标签 javascript jquery triggers click

我有一些特殊的 pb :我通过 ajax 请求类“myclass”的一些列表和 div 动态创建,然后单击它们,我称之为在输入区域中添加一些 url,然后添加一些源一个 iframe,显示在弹出窗口中

$(document).on("click", "li .myclass", function () {
    var uri = $(this).closest('li').attr("id");
    var embed = 'https://www.youtube.com/embed/';
    $('#myinput').val(val + uri);
    $('#wrapper iframe').attr('src', embed + uri);
});

然后,单击弹出窗口的按钮,我触发单击 #mybutton,创建一些文本区域

$(document).on("click", ".popup button", function () {
    event.preventDefault();
    $('#mybutton').trigger('click');
    $('#myinput').val('');
});

我的问题是,第一次单击“li .myclass”时,它会干净地创建一个文本区域。但是,如果我第二次单击,它会创建三个文本区域,然后如果我第三次单击,它会创建 6 个文本区域。我真的不明白这个行为,有人可以帮忙吗?

最佳答案

尝试替换这个:

$(document).on("click", "li .myclass", function () {

这样:

$("li .myclass").on("click", function () {

您使用 jQuery 的方式 on带有“选择器”参数的方法有点危险。它需要了解 Event Bubbling并且可能是触发多个事件的来源。

关于javascript - 点击触发事件太多次 - Jquery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14837278/

相关文章:

javascript - 如何使用 id 上匹配的另一个 2D 数组更新 2D 数组

javascript - 对显示的选择更改选项值使用react

jquery - 条形位置的外观不正确 - d3.js

Javascript 和 JQuery - 将输入附加到具有相同类的多个 div

mysql - MySQL中表之间的关系

sql-server - 触发器和行版本控制信息

javascript - 使用 jQuery 触发按键...并指定按下哪个键

javascript - 您应该在异步函数中等待返回值吗?

javascript - PHP-从数据库获取实时数据

jquery - 循环遍历每个元素并存储为变量