动态声明和使用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'));
});