以下问题的答案是,
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()的函数。所以每一行看起来都是这样的,
<tr id="message-7">在日历中加载和创建新页,
<tr id="message-132">单击不会触发函数。在另一个问题的示例中,它访问元素的文本,以便使元素是唯一的,而不是像在我的情况下那样给元素一个惟一的id #。
我是不是走错路了?我可以添加类似于"title=132"标记的东西吗?
发布于 2016-11-15 18:30:48
理想情况下,尽量不要从ID中产生太多的意义,而是使用数据作为在这里显示。
所以而不是
<tr id="message-7">使用
<tr id="1234567" data-message="7">然后,在代码中,您可以将数据处理为:
var messageVal = $("#1234567").data("message")如果您需要添加一个泛型的单击事件,那么您可能需要为所有适当的TR使用一个虚拟的css类分配:
<tr id="1234567" data-message="7" class="messageRow">这样你就可以写
$(".messageRow").on("click", function(event){
event.preventDefault()
var messageVal = $(this).data("message")在只有某些TR将包含可单击内容的情况下,这是有用的--只是不要将类分配给其他类。
https://stackoverflow.com/questions/40616855
复制相似问题