dynamic - 如何使用 jQuery 将单击事件 Hook 到动态创建的 anchor 标记

标签 dynamic anchor jquery

在 jQuery 循环内,我尝试将单击事件附加到包含在 LI 元素中的动态创建的 anchor 标记。 LI 本身是在静态 UL 元素内动态创建的。由于某种原因,单击 anchor 时不会触发任何内容。这是有问题的代码的简化版本:

$.each($.MyProject.cities, function (index, city) {
    $('<li></li>').html($("<a></a>").attr("href", "javascript:void(0)").click(function (event) {
        console.info("Anchor clicked!");
        event.preventDefault();
        return false;
    }).html($("<span></span>").text(city.FullName).attr("class", "autoText"))).appendTo($("#visiblecities"));
});

其中visiblecities是UL元素的id,cities是循环迭代的集合。

知道为什么点击事件不起作用吗?

最佳答案

使用event delegation设置一个将对所有 <a> 使用react的事件处理程序元素,即使它们是在代码执行之后添加的:

$('#visibleCities').on('click', 'a', function(event) {
    console.info('Anchor clicked!');
    event.preventDefault();
    return false;
});

不过,正如 gdoron 在评论中提到的,你的 <a>元素当前没有任何内容,因此它们实际上不可点击。

关于dynamic - 如何使用 jQuery 将单击事件 Hook 到动态创建的 anchor 标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15065788/

相关文章:

javascript - 点击 anchor 有一个 child

PHP 链接不起作用

jquery - 无法在 Jquery 中选择元素

javascript - json分组多个数组的相关数据

jquery - 使用 $.click() 动态插入的 DOM 元素不可点击

uitableview - UITableViewCell 中具有动态高度的多个 UILabels

c - 从文件读取数据以重新分配动态结构数组时出现段错误

jquery - anchor 标记破坏具有哈希更改 URL 的页面

php - 从 PHP 页面 jQuery Iframe 传递 MYSQL 值

javascript - 动态添加的 JavaScript 在 IE 中找不到动态添加的字段