jquery隐藏所有打开的div并切换
我有2个链接,根据他们点击哪个链接要关闭所有其他链接并仅显示该链接的信息。
例:
任何想法如何使用Jquery切换点击其中一个链接并隐藏所有其他链接(如果打开)。 我只想一次显示一种送货方式的信息。 此外,我想要一个用户单击showall的选项,如果可能的话,显示所有这些选项。 提前致谢….
$(".shipping-container a").click(function() { $("div.info").hide(); $("div." + this.className).show(); });
你可以在这里试试。
$(".shipping-container > a.ups").click(function() { $(".shipping-container > .info").hide(); $(".shipping-container > .ups.info").show(); return false; }); $(".shipping-container > a.fedex").click(function() { $(".shipping-container > .info").hide(); $(".shipping-container > .fedex.info").show(); return false; }); $(".shipping-container > a.showall").click(function() { $(".shipping-container > .info").show(); return false; });
或者,如果您想要shiny的动画(以及轻松添加更多运输类型的能力):
["ups", "fedex"].forEach(function(method) { $(".shipping-container > a."+method).click(function() { $(".shipping-container > .info:not(."+method+")").slideUp("slow"); $(".shipping-container > ."+method+".info").slideDown("slow"); return false; }); }); $(".shipping-container > a.showall").click(function() { $(".shipping-container > .info").slideDown("slow"); return false; });
这里有一个略微修改的例子。
与上面几乎相同
$(".shipping-container a").click(function() { $("div.info").hide().filter("div." + this.className).show(); });
我不知道这是否比重新选择div更有效……它可能是。
此外,如果html是实际的,你可能想要使用像兄弟姐妹这样的方法:
$(".shipping-container a").click(function() { $(this).siblings("div.info").hide().filter("div." + this.className).show(); });
我觉得它更快。