动态声明和使用javascript值

动态声明和使用javascript值,javascript,javascript-events,google-chrome-extension,Javascript,Javascript Events,Google Chrome Extension,我有一个动态生成的链接,如下所示: <a href="#" id="btn_0">Data1</a> <a href="#" id="btn_1">Data2</a> <a href="#" id="btn_2">Data3</a> 由于Chrome扩展对内联事件处理程序的限制,我无法从生成的链接调用函数alert_some() 你知道我该怎么解决这个问题吗?谢谢 将jQuery与您的chrome扩展一起使用 jQuery

我有一个动态生成的链接,如下所示:

<a href="#" id="btn_0">Data1</a>
<a href="#" id="btn_1">Data2</a>
<a href="#" id="btn_2">Data3</a>
由于Chrome扩展对内联事件处理程序的限制,我无法从生成的链接调用函数alert_some()

你知道我该怎么解决这个问题吗?谢谢


将jQuery与您的chrome扩展一起使用

jQuery(document).on("click", "a", function() {
   alert_some($(this).attr("id"));
}

function alert_some(id) {
    alert(id);
}
还是纯JS

document.onclick = function(ele) {
    if (ele.originalTarget.localName == "a") {
        alert_some(ele.originalTarget.id);
    }
}

function alert_some(id) {
    alert(id);
}
这将适用于所有
a
元素,包括动态生成的元素

不过,您需要区别于页面上的其他
a
s。。。 示例


或者修改后的fiddle

使用方法监听添加到DOM的链接的单击事件

$(document).on('click', '.link', function() {
    alert_some($(this).attr('id'));
});

什么是你不能做的,真的?将
“onclick=stuff()”
放在html上作为链接?您可能需要验证originalTarget、localName等东西是否在chrome上工作,如果没有,请找到等价物。它将获取页面的所有
a
元素,而不仅仅是他生成的元素。是吗?所以他需要增加一个额外的测试<代码>好极了!我添加了一个类来指定需要使用的确切链接。ThanksI刚刚修改了你的小提琴,可能更符合你原来的做法。见我答案的结尾。否则,
jQuery(document).on(“click”,“a.generated”),function(){
会很好地完成这个任务
$(document).on('click', '.link', function() {
    alert_some($(this).attr('id'));
});