Jquery未定位页面上对象的最后一个实例

时间:2014-03-01 08:48:15

标签: jquery wordpress

感谢这里的一些帮助,我在循环中得到了一个整齐的小jquery,可以执行以下操作。

在我的摘录页面上,当帖子中填写了自定义字段“takeaway”时,第二个按钮会添加到帖子旁边,标准的“read more”会将它们带到永久链接中的锚点。

添加jquery以定位具有.more类的'read more'按钮,并添加类.small,将其缩小到50%,以便新按钮很好地放在一起。

问题是,由于一些奇怪的原因,它不会在页面上定位.more的最后一个实例,无论页面上有多少帖子,该类.small只是没有添加到页面上的最后一个。

有人可以帮忙吗?

<?php $key = get_post_meta($post->ID, 'takeaway', true);    
if($key) : ?> 
<script>
$(".takeaway").parent().find(".more").addClass("small");
</script>
<a class="takeaway" href="<?php the_permalink(); ?>#thetakeaway" rel="bookmark">Quick+Dirty!</a>
<?php endif; ?> 

1 个答案:

答案 0 :(得分:2)

这是因为您尝试在页面上尚未出现的元素$(".takeaway")上运行JavaScript。首先,您希望根据您的密钥输出您的takeaway类的link元素:

<?php $key = get_post_meta($post->ID, 'takeaway', true);    
if ($key) : ?> 
<a class="takeaway" href="<?php the_permalink(); ?>#thetakeaway" rel="bookmark">Quick+Dirty!</a>
<?php endif; ?> 

然后在</body>标记之前,在domready事件处理程序中,添加脚本以将small类添加到预期元素:$key = ...部分是再次需要,否则$key var将是未定义的,并且会发生错误。

<?php $key = get_post_meta($post->ID, 'takeaway', true);
if ($key) : ?> 
<script type="javascript">
$(function() {
    $(".takeaway").parent().find(".more").addClass("small");
});
</script>
<?php endif; ?>