我知道這很容易做到,我敢肯定我錯過了一些顯而易見的事情,但我希望使用jQuery切換來隱藏/顯示4個不同的div。隱藏/顯示切換jQuery不切換?
我有一個小提琴去這裏:http://jsfiddle.net/4SDesignStudio/agjqj80t/
我缺少什麼?
HTML:
<ul class="wine-filters">
<li style="float:left; margin-right:1.5em;">Filters:</li>
<li class="button-row red-filter">Reds</li>
<li class="button-row white-filter">Whites</li>
<li class="button-row sparkling-filter">Sparkling</li>
<li class="button-row dessert-filter">Dessert</li>
</ul>
<div class="red-wine">
** A bunch of <article> sections with each red wine **
</div>
<div class="white-wine">
** A bunch of <article> sections with each white wine **
</div>
<div class="sparkling-wine">
** A bunch of <article> sections with each sparkling wine **
</div>
<div class="dessert-wine">
** A bunch of <article> sections with each dessert wine **
</div>
的jQuery:
var $redFilter = $('red-filter');
var $whiteFilter = $('white-filter');
var $sparklingFilter = $('sparkling-filter');
var $dessertFilter = $('dessert-filter');
var $redWine = $('.red-wine');
var $whiteWine = $('.white-wine');
var $sparklingWine = $('.sparkling-wine');
var $dessertWine = $('.dessert-wine');
// Event handlers - Wine Filters
$redFilter.on('click', function(event) {
$redWine.toggle('show');
$whiteWine.toggle('hide');
$sparklingWine.toggle('hide');
$dessertWine.toggle('hide');
});
$whiteFilter.on('click', function(event) {
$redWine.toggle('hide');
$whiteWine.toggle('show');
$sparklingWine.toggle('hide');
$dessertWine.toggle('hide');
});
$sparklingFilter.on('click', function(event) {
$redWine.toggle('hide');
$whiteWine.toggle('hide');
$sparklingWine.toggle('show');
$dessertWine.toggle('hide');
});
$dessertFilter.on('click', function(event) {
$redWine.toggle('hide');
$whiteWine.toggle('hide');
$sparklingWine.toggle('hide');
$dessertWine.toggle('show');
});
嗯,你的前四個jQuery選擇缺少領先期。例如:'var $ redFilter = $('red-filter');'應該是'var $ redFilter = $('。red-filter');'。 – j08691
var $ redFilter = $('red-filter');應該閱讀var $ redFilter = $('。red-filter'); – xeo
其次,'.toggle()不接受顯示/隱藏字符串,但它確實接受真/假布爾值。 – j08691