在我的JSP页面中,我添加了一些链接:

<a class="applicationdata" href="#" id="1">Organization Data</a>
<a class="applicationdata" href="#" id="2">Business Units</a>
<a class="applicationdata" href="#" id="6">Applications</a>
<a class="applicationdata" href="#" id="15">Data Entity</a>


它具有为click事件注册的jQuery函数:

$("a.applicationdata").click(function() {
    var appid = $(this).attr("id");
    $('#gentab a').addClass("tabclick");
    $('#gentab a').attr('href', '#datacollector');
});


它将在tabclick中的<a>内的<li>中添加类id="gentab"。一切正常。这是我的<li>代码:

<li id="applndata"><a class="tabclick" href="#appdata" target="main">Application Data</a></li>
<li id="gentab"><a href="#datacollector" target="main">General</a></li>


现在我有这些链接的jQuery单击处理程序

$("a.tabclick").click(function() {
    var liId = $(this).parent("li").attr("id");
    alert(liId);
});


对于第一个链接,它工作正常。它正在警告<li> id。但是对于第二个<li>,第一个jQuery添加class="tabclick"的地方不起作用。

我尝试了$("a.tabclick").live("click", function(),但随后的第一次链接单击事件也无法正常工作。

最佳答案

由于class是动态添加的,因此您需要使用事件委托来注册事件处理程序

$(document).on('click', "a.tabclick", function() {
    var liId = $(this).parent("li").attr("id");
    alert(liId);
});

07-24 09:50
查看更多