0

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

<a href="#" id="btn_0">Data1</a>
<a href="#" id="btn_1">Data2</a>
<a href="#" id="btn_2">Data3</a>

只要点击其中一个链接,我就想使用以下功能:

function alert_some(id){
    alert(id);
}

由于Chrome 扩展对内联事件处理程序的限制,我无法从生成的链接调用函数 alert_some() 。

知道我该如何解决这个问题吗?谢谢。

http://jsfiddle.net/selom/wxnDj/

4

2 回答 2

1

将 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 区分开来......示例<a href="#" id="btn_2" class="generated">Data3</a>


或者你修改过的小提琴http://jsfiddle.net/wxnDj/36/

于 2013-07-18T23:10:21.480 回答
1

使用jQuery#on方法随时监听添加到 DOM 的链接的单击事件。

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

http://jsfiddle.net/rotev/wxnDj/34/

于 2013-07-18T23:14:22.697 回答