1

我正在为 facebook 开发一个 chrome 扩展(我的第四个问题左右......),它在“like”按钮旁边添加了一个自定义按钮。由于帖子会自动添加到新闻提要中而无需刷新页面,因此每次添加新帖子时我都必须添加脚本。

我使用DOMNodeInserted事件。

问题是当事件被调用时,我在页面中插入了一个新元素(按钮),它会产生一个循环!

我的脚本:

$(document).bind('DOMNodeInserted', function(event) {
    $(".like_link").after('<span class="dot"> · </span><button class="taheles_link stat_elem as_link" title="תגיד תכל&acute;ס" type="submit" name="taheles" onclick="apply_taheles()" data-ft="{&quot;tn&quot;:&quot;&gt;&quot;,&quot;type&quot;:22}"><span class="taheles_default_message">תכל&acute;ס</span><span class="taheles_saving_message">לא תכלס</span></button>');
    $(".taheles_saving_message").hide();
});

你可以在这里看到我之前的问题

我厌倦了提问,所以我非常感谢任何回答/评论!

4

1 回答 1

1

这行得通吗?如果您不再插入任何.like_link元素,那么当您的元素插入发生时,这应该是一个无操作,因为它只查找包含 a 的节点插入 .like_link

$(document).bind('DOMNodeInserted', function(event) {
    $(event.target).find(".like_link").after(
        '<span class="dot"> · </span>' +
        '<button class="taheles_link stat_elem as_link" title="תגיד תכל&acute;ס" type="submit" name="taheles" onclick="apply_taheles()" data-ft="{&quot;tn&quot;:&quot;&gt;&quot;,&quot;type&quot;:22}">' +
            '<span class="taheles_default_message">תכל&acute;ס</span><span class="taheles_saving_message">לא תכלס</span>' +
        '</button>'
    );
    $(event.target).find(".taheles_saving_message").hide();
});
于 2012-05-20T14:33:45.200 回答