javascript - 超链接上的 event.preventDefault() 不起作用

标签 javascript html jquery event-handling jquery-events

我知道这个问题已经被解决了很多次,这就是为什么我阅读了 Stack Overflow 上已经开放的关于这个问题的大部分主题,但没有一个建议对我有帮助。

我有一个 div 元素列表,每个元素都包含一个超链接和一个带有附加信息的 span 元素。 span 元素最初是隐藏的,只要单击同级 anchor 元素就需要切换它们。

<div class="politician">
    <a href="">
        Антонијо Милошоски
    </a>
    <span class="additional" style="display: none">
        2013ВМРО-ДПМНЕ1997-1
    </span>
</div>
<div class="politician">
    <a href="">
        Силвана Бонева
    </a>
    <span class="additional" style="display: none">
        2013ВМРО-ДПМНЕ1991-1
    </span>
</div>

这是我编写的用于处理隐藏元素切换的 jQuery 代码:

    $('.politician a').click(function (e) {
        e.preventDefault();
        var $this = $(this).parent().find('span');
        $(".politician span").not($this).hide();
        $this.toggle();
    });

我的问题已经在标题中说明了。我期望显示隐藏的元素,但页面却被刷新。我想我使用 preventDefault() 方法的方式一定有问题。

编辑

这是生成 div.politician 元素的代码。

        function populateList(politicians) {
        var politlist = $("#list").html("");
        for (var i in politicians) {
            var person = politicians[i];
            var politinfo = "<div class=\"politician\"><a href=\"\">" + person.name + " " + person.surname + "</a><span class=\"additional\" style=\"display: none\">" + person.lastserved;

            for (var j in person.member)
            {
                var membership = person.member[j]
                politinfo += membership.party + membership.enrol + membership.leave;
            }

            politinfo += "</span></div>";
            $(politinfo).appendTo(politlist);
        }
    }

最佳答案

由于您要动态添加元素,因此需要使用 event delegation :

$('#list').on('click', '.politician a', function(e) {
   // your code 
});

关于javascript - 超链接上的 event.preventDefault() 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24533549/

相关文章:

javascript - JQuery Mobile 数据角色不适用于 div

javascript - github oauth 上的 cors 问题

jquery - 使用 jQuery animate 扩展高度时 div 中的文本移动

javascript - 屏幕外切换显示不显示

javascript - Meteor 在尝试创建 ObjectID 时返回无效的十六进制字符串错误?

javascript - VBA/次要 HTML/Javascript : Click a tricky hidden checkbox in a report

javascript - Angular 无法与 Gridster 正确绑定(bind)

javascript - 为什么我无法通过该事件?

javascript - 将谷歌地图 Logo 移至底部自定义界面上方。 JavaScript

html - 如何在 ASP.Net MVC 中使用不同的 Bootstrap 主题?