1

我有以下情况;在我的 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 时,我每点击一个超链接就有一个。有没有办法防止这种情况?

4

3 回答 3

2

我相信您正在获取每个锚标记,因为您在文档上设置事件,而不是锚标记。试试这个:

$('a').on('click',function(event) {
  event.stopPropagation();
  clickedID = parseInt($(this).attr('id'));
  alert(clickedID);
});
于 2012-09-22T00:19:43.123 回答
1

您的 for 循环中有错误。您id="+i+"只需将所有锚标签的 ID 设置为,+i+因为您没有转义加号和变量 i

于 2012-09-22T00:21:50.113 回答
0

你可以试试这个,"a.a"应该是"a.Chris"因为Chris你没有使用过的类名aid应该以非数字字符开头。

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);
});

演示

于 2012-09-22T00:30:56.923 回答