特定类的jQuery函数
我在wordpress页面中运行自定义循环,该页面应列出一个类别中的所有鞋子以及颜色选择器。 我让循环运行得很好,页面看起来还不错。 但是我的jQuery脚本有一个很大的问题就是改变了图像。
每个post都有:不同颜色的鞋子和颜色选择器的几个图像 – 不同的鞋子有不同的颜色(你可以在http://www.etfovac.com/testbed/shoe/看到一个演示 – 最后的页面应该看起来像这样http://sofzh.miximages.com/jquery/mockup.jpg )我的jQ函数看起来像这样(对于测试页面)
$(document).ready(function() { $(".colorwrap a").click(function(){ var a = $(this).attr("rel"); $(".cipela-1, .cipela-2, .cipela-3, .cipela-4").slideUp('slow'); $("."+a).slideDown("slow"); }); $(".cipela-1").slideDown("slow"); });
但它改变了页面上每双鞋的图片。
我可以在函数中硬编码,因此它选择cipela 1到50
什么是更好的方法来做到这一点?
不要在该类的所有项目中执行slideDown。 只做当前元素的子元素。 使用closest()
函数
$(document).ready(function() { $(".colorwrap a").click(function(){ var item=$(this); var a = item.attr("rel"); item.closest(".post").find(".cipela-1, .cipela-2, .cipela-3, .cipela-4").slideUp('slow'); item.closest(".post").find("."+a).slideDown("slow"); }); $(".cipela-1").slideDown("slow"); });
工作样本http://jsfiddle.net/rXB5G/16/
尝试只滑动兄弟姐妹:
$(this).siblings(".cipela-1, .cipela-2, .cipela-3, .cipela-4").slideUp('slow');