我正在为facebook开发一个chrome扩展程序(我的第四个问题......),它在“喜欢”按钮旁边添加了一个自定义按钮。由于帖子会自动添加到新闻Feed而不刷新页面,因此每次添加新帖子时都必须添加脚本。
我使用DOMNodeInserted
事件。
问题在于,当调用事件时,我向页面插入一个新元素(按钮),然后循环!
我的剧本:
$(document).bind('DOMNodeInserted', function(event) {
$(".like_link").after('<span class="dot"> · </span><button class="taheles_link stat_elem as_link" title="תגיד תכל´ס" type="submit" name="taheles" onclick="apply_taheles()" data-ft="{"tn":">","type":22}"><span class="taheles_default_message">תכל´ס</span><span class="taheles_saving_message">לא תכלס</span></button>');
$(".taheles_saving_message").hide();
});
您可以看到我之前的问题here
我已经厌倦了提问,所以我真的很感激任何回答/评论!
答案 0 :(得分:1)
这有用吗?假设您不再插入.like_link
个元素,那么当您的元素插入发生时,这应该是无操作,因为它只查找包含.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="תגיד תכל´ס" type="submit" name="taheles" onclick="apply_taheles()" data-ft="{"tn":">","type":22}">' +
'<span class="taheles_default_message">תכל´ס</span><span class="taheles_saving_message">לא תכלס</span>' +
'</button>'
);
$(event.target).find(".taheles_saving_message").hide();
});