首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >javascript replaceWith +分类

javascript replaceWith +分类
EN

Stack Overflow用户
提问于 2012-10-23 17:54:53
回答 1查看 148关注 0票数 0

似乎我遇到了一点问题,我很困惑为什么..

代码:

代码语言:javascript
复制
$(".post-click").click(function()
{
    var classid = $(this).attr('id');
    var postid = $(this).attr('id');
    postid = postid.replace('post-click-id_', '');

    alert("ID: " + classid + " PostID: " + postid);

    $(this).replaceWith('<img SRC="assets/img/refresh.gif" ALT="" id="' + classid + '">');

    $.post("likepost.php", { postid: postid } , function(data)
    {
        $(document).foundationTooltips();

        alert(data);
            $("#" + classid).replaceWith(data);

            var classes = $("#" + classid).attr('class');

            alert(classes);
    });
});

现在,当你点击它的时候,它会替换掉你点击的ID的文本。现在,在上面我得到了这个:

代码语言:javascript
复制
$(".post-click").click(function()
{

在替换之后,post-click似乎不再被调用。为了确保我用好的类替换了它,我把'var classes = ...‘在外面。它警告单击后的类在替换中。

替换为:test< /a >";

知道为什么jQuery不再调用post-click了吗?

EN

回答 1

Stack Overflow用户

发布于 2012-10-23 18:01:36

在使用replaceWith时,您将替换DOM元素,并完成其事件绑定。

幸运的是,jQuery提供了.on,它允许您使用事件委托(而不是遍历重新绑定事件的新内容)。

将其应用于post-click的父节点,然后在参数中指定类。

例如:

代码语言:javascript
复制
$(".some-parent-elem").on("click", ".post-click", 
       function (){...do stuff on click...});

它的工作原理是侦听.ome-parent-elem上的点击(由于事件冒泡,这意味着当您单击该元素的子元素时,它将触发),然后如果被单击的原始目标元素具有post-click类,它将运行函数。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13027869

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档