隐藏/显示不同的链接
我有一个脚本在jsfiddle的一个链接上工作。
我有两个链接。 链接一个是“链接一个”另一个是“链接二”你可以在jsfiddle上看到代码= http://jsfiddle.net/lamberta/7qGEJ/4/
它可以显示和隐藏,但我不能让它显示一个和另一个。 它显示了一切。
如果我按Link一个我想显示“.open-container-One”如果我按Link 2我只想显示“open-container-Two”
希望你理解我的问题。
jsCode:
$(document).ready(function() { var $div = $('.test'); var height = $div.height(); $div.hide().css({ height: 0 }); $('a').click(function() { if ($div.is(':visible')) { $div.animate({ height: 0 }, { duration: 500, complete: function() { $div.hide(); } }); } else { $div.show().animate({ height: height }, { duration: 500 }); } return false; }); });
虽然我喜欢@ adeneo的答案,但我更喜欢使用选择器而不是元素的方法:
$(".test").hide(); $('.list a').each(function(i) { $(this).on("click", function() { $(".test").slideUp(0).eq(i).slideDown(400, function() { $(".close a").on("click", function() { $(".test").slideUp(); }); // on click close }); // after slideDown (shown div) }); // on click link }); // each
唯一的条件是应该有相同数量的链接(列表项)作为要显示的div
的数量和相同的顺序。
请参阅JSFIDDLE
从单击的锚点获取索引,在这种情况下必须是包装li
,然后使用该索引在.test
元素集合中选择正确的索引。 无需重新创建已构建到jQuery中的slideUp / Down。
$(function() { var elems = $('.test').hide(); $('a').click(function(e) { e.preventDefault(); var selEl = elems.eq($(this).closest('li').index()); selEl.slideToggle(600); elems.not(selEl).slideUp(600); }); });
小提琴
将类赋给锚标记,
Link 01 Link 02
将相应的类作为id作为div标记
... ... ... ...
在javascript函数中进行以下更改
$('a').click(function() { $('div.test').hide(); var showDivClass = $(this).attr("class"); $("#" + showDivClass).show().animate({ height: height }, { duration: 500 }); $('div.test').not("#" + showDivClass).hide().animate({ height: 0 }, { duration: 500 }); });
更新和测试。
请提供锚标记的ID,该标记与您需要显示/隐藏的类相同。 并用id标签替换$ div