我有以下情况;在我的js中,我有一个动态超链接,我需要捕获点击的链接ID。
for (var i = 0; i < neighbor.data[3].length; i++){
<a class="Chris" name="a" id="+i+" href="Chris">Hi</a>
}
现在我可以得到这个;
parseInt($(this).attr("ID"));
我用它来捕获它;
$(document).on("click", "a.a", function(event) {
event.stopPropagation();
alert(clickedID);
clickedID = parseInt($(this).attr("ID"));
});
现在,我的问题是,每当我点击超链接而不是只有一个clickedID时,我会点击每个超链接。有办法防止这种情况吗?
答案 0 :(得分:2)
我相信您正在获取每个锚标记,因为您要在文档上设置事件,而不是锚标记。试试这个:
$('a').on('click',function(event) {
event.stopPropagation();
clickedID = parseInt($(this).attr('id'));
alert(clickedID);
});
答案 1 :(得分:1)
for循环中有错误。您的id="+i+"
只会将所有锚标记的ID设置为+i+
,因为您没有转义加号和变量i
答案 2 :(得分:0)
您可以尝试这样做,"a.a"
应该是"a.Chris"
,因为Chris
是您使用的类名a
而id
应该以非{1}开头 - 数字字符。
for (var i = 0; i < neighbor.data[3].length; i++){
var a='<a class="Chris" name="a" id="id_'+i+'" href="Chris">Hi</a>';
$('#links').append(a);
}
$("#links").on("click", "a.Chris", function(event) { // You can use $(document).on(...) instead of $("#links").on(...)
event.preventDefault();
event.stopPropagation();
clickedID = parseInt($(this).attr("id").split('_')[1]);
alert(clickedID);
});