在chrome扩展中使用动态生成的锚标记

时间:2014-05-21 17:27:51

标签: javascript jquery html google-chrome-extension

我动态生成一些锚标签,并使用它们的id来重定向到其他页面。我已多次通过内联脚本完成此操作,但遗憾的是Chrome扩展程序并不支持内联脚本。 我var profileUid是动态生成的,我会将它们作为ID来锚定标记每次<a id='+profileUid+'>'link</a>所以每个链接都有不同的ID,当我点击应该调用以下功能的这些链接
$(function() { $('a').click(function() { console.log(this.id); alert(this.id); chrome.tabs.create({url:'https://plus.google.com/'+this.id+'/posts'}); });
要重定向到新页面,它可以使用静态元素(锚标记),但不能用于动态生成的元素。这让我疯了,让我帮忙离开这里。

1 个答案:

答案 0 :(得分:1)

执行$('a').click(handler);时,它首先找到所有匹配的元素,然后绑定到它们的事件。因此,它仅适用于调用时已存在的元素。

因此,当您稍后向DOM添加<a>元素时,您需要单独处理它的事件。

function handler() {/* ... */}

// Bind to static elements
$(function() {
  $('a').click(handler);
});

// Create an elemet
var element = $('<a>');
element.attr('id', profileUid);
element.text("Whatever");
element.click(handler);
element.appendTo(parent);