我正在学习jquery并且遇到了麻烦。我正在构建一个包含两个部分的页面。一个是无序的食物类型列表。另一个是一组div,每个都显示不同类型的啤酒,可以补充每种食物类型。每个列表项及其对应的div共享同一个类。所有的div都位于视野开始之外。
我想要完成的是每个列表项的onclick,无论视图中的div是不在视图中的动画,然后单击的列表项的相应div动画到视图中。
我得到了这个工作,但由于某种原因,它停止了工作。我不知道这是否与我的代码有关,或者是否有更好的方法来完成这个项目。
$(function(){
$('.beer_container > div.default').css('top', '0');
$('ul.food_items li').click(function(){
var theClass = $(this).attr('class');
var $theBeer = $('div.beer_container > div[class="+ theClass +"]');
var $oldBeer = $('div.beer_container > div:not([class="+ theClass +"])');
$oldBeer.animate(
{'top': '-420'},
'slow', function(){
$theBeer.animate(
{'top': '0'}, 'slow');
});
});
});
<div class="left food_container">
<ul class="food_items">
<li class="lighter_foods">Lighter Foods</li>
<li class="classic_burger">Classic Burger</li>
<li class="strong_spicy">Strong & Spicy</li>
<li class="rich_hearty">Rich & Hearty</li>
<li class="smoked">Smoked Meats</li>
</ul>
</div>
<div class="right beer_container">
<div class="default">
This is the intro page. What are you eating?
</div>
<div class="lighter_foods">
Blonde Ale, Hefeweizen, Wheat Ale, Witbier, Pilsener
</div>
<div class="classic_burger">
Pale Ale, Amber/Red Ale, Amber Lager
</div>
<div class="strong_spicy">
IPA, Amber/Red Ale, Abbey Tripel, Sweet or Oatmeal Stout, Oktoberfest/Maerzen, Pale Bock
</div>
<div class="rich_hearty">
Bitter, Scotch Ale, Brown Ale, Abbey Dubbel, Old or Strong Ale, Porter, Dry Stout, Dunkelweizen, Weizenbock, Doppelbock, Dark Lager
</div>
<div class="smoked">
Double/Imperial IPA, Brown Ale, Abbey Dubbel, Porter, Imperial Stout
</div>
</div>
答案 0 :(得分:0)
看起来有些单引号变为双引号。
var $theBeer = $('div.beer_container > div[class=' + theClass + ']');
var $oldBeer = $('div.beer_container > div:not([class=' + theClass + '])');
我不支持这种定位方法,但你绝对不想用“+ theClass +”类来寻找div