添加类后 jQuery 单击事件不起作用

标签 jquery

在我的 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>

它有一个为点击事件注册的 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> ,其中class="tabclick"首先添加的 jQuery 不起作用。

我试过$("a.tabclick").live("click", function() ,但是第一个链接点击事件也不起作用。

最佳答案

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

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

关于添加类后 jQuery 单击事件不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16893043/

相关文章:

Javascript 通过 data-id 获取内容

javascript - 在更改/删除另一个 div 时将图像添加到不同的 div

java - 页面加载后异步 AJAX 返回

javascript - onclick 属性未按预期工作

jquery - 如何在bootstrap中添加动态div?

jquery - 多个复选框的问题

javascript - JQuery 按钮点击不起作用

javascript - Jquery:slideToggle,然后滚动到 div

javascript - 同一 DIV 上的 jQuery 悬停/单击事件(移动设备)

asp.net - 同时使用 Kendo UI 和另一个 jQuery 版本