我有这样的结构:
<div class="post">
<div class="left">
<div class="foo"><p><a href="#" id="clickme<?php echo $num;?>">blah</a></p></div>
</div>
<div class="right">
<div class="text">blah blah blah blah</div>
</div>
<p class="date">27/12/12</p>
</div>
这个结构是重复的,所以每个#clickme
最后都有不同的数字
即:#clickme2
等#clickme3
使用#clickme<?php echo $num;?>
我想要做的是在有人点击时显示.date
一条#clickme
消息#clickme
我努力了:
$('#clickme<?php echo $num;?>').parent().find('.date').append('<span id="msg">blah blah blah blah</span>');
不工作。
$('#clickme<?php echo $num;?>').closest('.post').find('.date').append('<span id="msg">blah blah blah blah</span>');
这个似乎有效(有点),但附加到页面 first不是与之关联的.post
页面。.date
#clickme
请注意<?php echo $num;?>
不是问题,那工作正常,它只是 jquery。
更新:
我发现
$('#clickme<?php echo $num;?>').closest('.post').find('.date').append('<span id="msg">blah blah blah blah</span>');
确实有效,但说我点击了第三个帖子,它显示正确,但是如果我点击该帖子下方的任何帖子,即第 4、5 个帖子,它仍然会附加到第三个帖子,而不是与点击关联的帖子。
我也有这条线来淡入/淡出消息
$('#msg').fadeIn('fast').delay(1000).fadeOut('fast');
我曾尝试.remove()
在延迟后添加到末尾,但这使它根本无法工作
$('#msg').fadeIn('fast').delay(1000).fadeOut('fast').delay(1000).remove();
完整代码
$('#clickme<?php echo $num;?>').closest('.post').find('.date').append('<span id="msg">blah blah blah blah</span>');
$('#msg').fadeIn('fast').delay(1000).fadeOut('fast');