나는 Isotope 필터 메뉴가 있으며 사용자가 페이지로 다시 돌아 오면 필터가 설정되도록 해시 기록을 사용하고 있습니다. .slideDown을 사용하여 하위 메뉴 항목을 확장하기 때문에 하위 필터 항목이 선택되어 있어도 페이지로 돌아 가면 하위 메뉴 항목이 숨겨집니다.JavaScript hasClass가 요소의 클래스를 무시하고 있습니까?
내가 사용하려고 해요 : 클래스 "선택"이 jQuery를 필터 (동위 원소)에 의해 생성되고 있기 때문에
if ($('#option1').hasClass('.selected')) {
$('.level-two').slideDown('fast');
}
는하지만, 그것은 무시합니다.
바이올린 : http://jsfiddle.net/RevConcept/swT84/
HTML :
<nav>
<div id="options" class="combo-filters">
<div class="option-combo location">
<ul class="filter option-set group level-one" data-filter-group="location">
<li class="hidden"><a href="#filter-location-any" data-filter-value="" class="selected">any</a></li>
<li><a id="option1" href="#filter-location-exterior" data-filter-value=".exterior" class="trigger-two">exterior</a></li>
<li><a id="option2" href="#filter-location-interior" data-filter-value=".interior" class="trigger-two">interior</a></li>
</ul>
</div>
<div class="option-combo illumination">
<ul class="filter option-set group level-two" data-filter-group="illumination">
<li class="hidden"><a href="#filter-illumination-any" data-filter-value="" class="selected">any</a></li>
<li><a href="#filter-illumination-illuminated" data-filter-value=".illuminated" class="trigger-three">illuminated</a></li>
<li><a href="#filter-illumination-non-illuminated" data-filter-value=".non-illuminated" class="trigger-three">non-illuminated</a></li>
</ul>
</div>
<div class="option-combo mount">
<ul class="filter option-set group level-three" data-filter-group="mount">
<li class="hidden"><a href="#filter-mount-any" data-filter-value="" class="selected">any</a></li>
<li><a href="#filter-mount-wall" data-filter-value=".wall">wall</a></li>
<li><a href="#filter-mount-ground" data-filter-value=".ground">ground</a></li>
</ul>
</div>
</div><!--end options-->
</nav>
CSS :
header nav ul.level-two, header nav ul.level-three {
display:none;
}
자바 스크립트 : '.'나는 당신이 누락 추측
$(function(){
$('.level-one').hide().fadeIn('fast');
});
$(".trigger-two").one('click', function(){
$(".level-two").slideDown('fast');
});
$(".trigger-three").one('click', function(){
$(".level-three").slideDown('fast');
});
if ($('#option1').is('selected')) {
$('.level-two').slideDown('fast');
}
이것은 피들에서 아름답게 작동합니다 ...하지만 내 dev 사이트의 페이지로 돌아갈 때 어떤 이유로 하위 메뉴 옵션이 다시 숨겨집니다. [예] (http://revelationconcept.com/hosting/trademark_temp/)) – RevConcept
내가 틀릴 수도 있지만 주문 때문에 자바 스크립트 파일이 페이지에 포함되어있을 수 있습니다. .selected 클래스를 추가 한 스크립트는 toggle 스크립트 뒤에 추가되어'$ (document) .ready (function)())'과'$ (function())'(내가 아는 한 동일하다) 대기중인 다음 잘못된 순서로 호출됩니다. – qooplmao
나는 그것을 시도했지만 도움이되지 못했지만 그 시점에서 나는 다른 문제의 조합을 가지고 있었다고 생각한다 ... 당신이 옳았다! 대단히 감사합니다 ;) – RevConcept