2011-11-16 4 views
2

점프 사이트에 대한 링크입니다 :의 jQuery slidedown 여기 페이지

당신이 로고 하나를 클릭 http://p7dev.com/bella, 그들은 제대로 드롭 다운하지만 브라우저도 아래로 이동합니다. 로고를 클릭하면 브라우저에서 동일한 위치를 유지하는 방법은 무엇입니까?

jQuery(document).ready(function() { 

jQuery('.slick-down').click(function() { 
jQuery('#hqh-logo').toggleClass('active'); 
jQuery('#hqh').slideToggle('400'); 
jQuery('#hqt, #scion, #best, #rent').hide(); 
jQuery('#hqt-logo, #scion-logo, #best-logo, #rent-logo').removeClass('active'); 
}); 

jQuery('.slick-down2').click(function() { 
jQuery('#hqt-logo').toggleClass('active'); 
jQuery('#hqt').slideToggle('400'); 
jQuery('#hqh, #scion, #best, #rent').hide(); 
jQuery('#hqh-logo, #scion-logo, #best-logo, #rent-logo').removeClass('active');  
}); 

jQuery('.slick-down3').click(function() { 
jQuery('#scion-logo').toggleClass('active'); 
    jQuery('#scion').slideToggle('400'); 
jQuery('#hqt, #hqh, #best, #rent').hide(); 
jQuery('#hqh-logo, #hqt-logo, #best-logo, #rent-logo').removeClass('active');  
}); 

jQuery('.slick-down4').click(function() { 
jQuery('#best-logo').toggleClass('active'); 
jQuery('#best').slideToggle('400'); 
jQuery('#hqt, #hqh, #scion, #rent').hide(); 
jQuery('#hqh-logo, #hqt-logo, #scion-logo, #rent-logo').removeClass('active');  
}); 

    jQuery('.slick-down5').click(function() { 
    jQuery('#rent-logo').toggleClass('active'); 
jQuery('#rent').slideToggle('400'); 
jQuery('#hqt, #hqh, #scion, #best').hide(); 
jQuery('#hqh-logo, #hqt-logo, #scion-logo, #best-logo').removeClass('active');  
    }); 


$(".slick-down").change(function(){ 
$("select").not("#style").hide(); 
$("#"+$(this).val()).show(); 
}); 

답변

4

이 브라우저는 해시의 ID를 가진 요소의 위치로 이동합니다. 당신과 같이 preventDefault()를 사용하는 각 코드를 수정하여 자바 스크립트 클릭 처리기에서이 문제를 방지해야합니다 당신은 또한 difference between using preventDefault() & return false에서 살펴 봐야 할 수 있습니다

jQuery(".myclass").click(function(event) { 
    event.preventDefault(); 
    // Do normal things 
}); 

.

+0

정말 고마워요! – Tom

2

로컬 앵커에 연결했기 때문입니다. 예를 들어 첫 번째 로고는 #hqh입니다.

그러면 어디서나 id="hqh" 인 요소로 페이지가 이동합니다.

로고 링크의 href에서 대상 div ID를 제거하십시오. 그냥 대신 #를 사용 : 기본적으로

<a href="#"><img ...></a> 
0

당신은 event.preventDefault()를 사용하여 다음되는 기본 HREF를 (이 경우는 같은 페이지에서 앵커를 가리)을 방지 할 수 있습니다

jQuery('.slick-down').click(function(event) { 
    event.preventDefault(); 
    //run your code here 
}); 

할 수도 return false;을이 같은 이벤트 핸들러의 끝에서 :

jQuery('.slick-down').click(function() { 
    //run your code here 
    return false; 
}); 
+0

완벽한, 고마워. =) – Tom

1

귀하는 A 요소와 트리거하면 다음

.click(function(e){ 
    e.preventDefualt(); 

    // Your code. 
}); 
,691을 할 필요가
+0

false를 반환하고 기본 동작을 방지하는 것은 동일한 작업이 아닙니다. false를 반환하면 거의 효과가 없습니다 (차이가 중요한 경우). –

+0

내 대답을 업데이트했습니다. 귀하의 의견에 감사드립니다. – Niels

+0

둘 다 감사합니다! – Tom