首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery单击动态生成的日历元素上的事件?

jQuery单击动态生成的日历元素上的事件?
EN

Stack Overflow用户
提问于 2016-11-15 18:12:29
回答 1查看 149关注 0票数 0

以下问题的答案是,

代码语言:javascript
复制
var counter = 0;
$("button").click(function() {
 $("h2").append("<p class='test'>click me " + (++counter) + "</p>")
});

$("h2").on("click", "p.test", function(){
 alert($(this).text());
});

我有一个动态生成的日历,当你点击一个单独的一天,而不是打开一个新的网页,它交换日历为一天的事件。事件列在一个表中,我希望能够单击一行并让它触发一个使用location.assign()的函数。所以每一行看起来都是这样的,

代码语言:javascript
复制
<tr id="message-7">

在日历中加载和创建新页,

代码语言:javascript
复制
<tr id="message-132">

单击不会触发函数。在另一个问题的示例中,它访问元素的文本,以便使元素是唯一的,而不是像在我的情况下那样给元素一个惟一的id #。

我是不是走错路了?我可以添加类似于"title=132"标记的东西吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-15 18:30:48

理想情况下,尽量不要从ID中产生太多的意义,而是使用数据作为在这里显示

所以而不是

代码语言:javascript
复制
<tr id="message-7">

使用

代码语言:javascript
复制
<tr id="1234567" data-message="7">

然后,在代码中,您可以将数据处理为:

代码语言:javascript
复制
var messageVal = $("#1234567").data("message")

如果您需要添加一个泛型的单击事件,那么您可能需要为所有适当的TR使用一个虚拟的css类分配:

代码语言:javascript
复制
 <tr id="1234567" data-message="7" class="messageRow">

这样你就可以写

代码语言:javascript
复制
$(".messageRow").on("click", function(event){
    event.preventDefault()
    var messageVal = $(this).data("message")

在只有某些TR将包含可单击内容的情况下,这是有用的--只是不要将类分配给其他类。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40616855

复制
相关文章

相似问题

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