首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从列表中获取动态id?

如何从列表中获取动态id?
EN

Stack Overflow用户
提问于 2017-02-06 14:55:34
回答 4查看 85关注 0票数 0

由于某些原因,当我单击其中一个链接时,下面的代码没有提醒我正确的data-id。

这就是我所拥有的:

HTML

代码语言:javascript
复制
<a class="margin-0 size-9 serve" data-toggle="modal" data-target="#myModal2" data-id="3">Hello</a></p>
<a class="margin-0 size-9 serve" data-toggle="modal" data-target="#myModal2" data-id="4">Test</a></p>

Jquery

代码语言:javascript
复制
$(".serve").click(function(){ // Click to only happen on serve links
   alert($(this).attr('data-id'));
});

提前感谢

EN

回答 4

Stack Overflow用户

发布于 2017-02-06 15:09:03

如果您的页面使用类名serve动态创建元素,则需要将事件绑定到已存在的父级,通常是document。

代码语言:javascript
复制
$(document).on("click", ".serve", function (event) {
   alert($(this).data('id'));
});
票数 3
EN

Stack Overflow用户

发布于 2017-02-06 15:11:00

工作正常。如果元素是在DOM呈现后动态生成的,则Dommmmm的答案可能会有所帮助。

代码语言:javascript
复制
$(".serve").click(function(){ // Click to only happen on serve links
   alert($(this).attr('data-id'));
});

https://jsfiddle.net/n21ozzzr/

票数 1
EN

Stack Overflow用户

发布于 2017-02-06 15:06:15

我假设你是在动态生成你的网页元素?

您必须为生成的每个新动态元素启动一个click事件处理程序,而现有的事件处理程序不适用于新生成的DOM元素。

$(".serve")仅应用于注册事件处理程序时存在的元素。

要解决此问题,您可以为动态添加的每个新元素实例化事件处理程序:

例如:

代码语言:javascript
复制
function generateNewElementToPage() {
    var newElement;

    // your code here    

    $(parentContainer).append(newElement);  // append your new element to page
    $(newElement).click(function(){  // add event handler for newly created element
        // do stuff here when event handler is triggered
    });
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42061934

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档