jQuery 초보자가 약간있어, 조금이라도 간단하다면 용서해주세요! 슬라이딩 헤더 시스템은 아코디언 메뉴와 매우 흡사합니다. 그러나 요소를 열고 닫는 링크는 HTML의 다른 부분에 있으므로 아코디언 튜토리얼은 모두 작동하지 않습니다.jQuery - 다른 이벤트를 지연시키면서 하나의 이벤트를 실행하는 방법?
내가 지금까지 가지고있다 : HTML :
<div class="drawer" id="drawer_about"></div>
<div class="drawer" id="drawer_contact"></div>
<div class="drawer" id="drawer_hire"></div>
<div class="drawer" id="drawer_social"></div>
...
<ul class="navigation">
<li><a href="#" class="show_hide_about"><span>About Me</span></a></li>
<li><a href="#" class="show_hide_contact"><span>Get In Touch</span></a></li>
<li><a href="#" class="show_hide_hire"><span>Hire Me</span></a></li>
<li><a href="#" class="show_hide_social"><span>Social Networks</span></a></li>
</ul>
그리고 jQuery를이 :
$(document).ready(function(){
$("#drawer_about").hide();
$("#drawer_contact").hide();
$("#drawer_hire").hide();
$("#drawer_social").hide();
lastBlock = ("#drawer_hire");
$('.show_hide_about').click(function(){
$("#drawer_about").slideToggle(700);
$(lastBlock).hide(700);
lastBlock = ("#drawer_about");
});
$('.show_hide_contact').click(function(){
$("#drawer_contact").slideToggle(700);
$(lastBlock).hide(700);
lastBlock = ("#drawer_contact");
});
$('.show_hide_hire').click(function(){
$("#drawer_hire").slideToggle(700);
$(lastBlock).hide(700);
lastBlock = ("#drawer_hire");
});
$('.show_hide_social').click(function(){
$("#drawer_social").slideToggle(700);
$(lastBlock).hide(700);
lastBlock = ("#drawer_social");
});
});
내가 여기 OTT을하는 건가? 이 작업을 수행하는 더 간단한 방법이 있습니까?
내가 가진 주된 문제는 모든 기능입니다. 그러나 ABOUT ME 패널이 열려 있고 사용자가 HIRE ME 링크를 클릭하면 이상한 결과가 발생합니다. 이 상황에서 내가 원하는 것은 ME 소개 패널이 접히는 것, 그리고 HIRE ME 패널이 접히는 것입니다. 감각, 감사 사람을 만드는
희망,
알렉스
나는'$ .index()'를 직접 사용했을 것이다. 그러나 이것은 더 좋다. +1 – Bojangles
답장을 보내 주셔서 감사합니다. 나는 그것이 어떻게 작동해야 하는지를 볼 수 있으며, 당신이 제안한 것과 똑같이 구현했다. 그러나 다음 줄은 '$ ('drawer _'+ $ this) .data ('section')). slideDown (700);'isn 어떤 이유로 든 일하지 않습니다. 'setTimeout'에 경고를했습니다. 작동합니다. 그래서 어떤 이유로 든 한 줄이 작동하지 않습니다. 답장을 보내 주셔서 다시 한 번 감사드립니다. 곧 답장을 보내주십시오. Alex –
@AlexCowley 답변을 업데이트했습니다. 내 실수는 setTimeout 안에 'this'가 DOMWindow 인 새로운 문맥을 생성하기 때문에 더 이상 'a'가 아니다. 그래서 나는 a 요소를 전달하기 위해 그것을 클로저로 감쌌다. 당신은'a'를 다음과 같은 변수에 저장할 수 있습니다 :'var $ element = $ (this);'는 타임 아웃 이전에,하지만 나는 더 안전한 상황에서 클로저를 사용하는 경향이 있습니다 :) – Andy