코드를 단순화하기 위해 '$ (input [data-code])). each'함수를 사용하여 코드를 단순화하려고 노력했습니다. 코드는 사용자가 앵커 링크, 그것은처럼 보이는 그 자리에 그것을 아래로 애니메이션을jQuery/Javascript 코드 단순화
$('a.welcome').click(function(){
$('html, body').animate({scrollTop:0}, 2000, function() {
parallaxScroll();
});
return false;
});
$('a.step1').click(function(){
$('html, body').animate({scrollTop: $('#step1').offset().top - 70}, 2000, function() {
parallaxScroll();
});
return false;
});
$('a.step2').click(function(){
$('html, body').animate({scrollTop: $('#step2').offset().top - 70}, 2000, function() {
parallaxScroll();
});
return false;
});
$('a.step3').click(function(){
$('html, body').animate({
scrollTop: $('#step3').offset().top - 70
}, 2000, function() {
parallaxScroll();
});
return false;
});
그리고 난 지금까지이 보이는 단순화하기 위해 마련 한 것을 :
$("input[data-code]").each(function() {
$(this).click(function(){
$('html, body').animate({
scrollTop: $($(this).data("code")).offset().top - 70
}, 2000, function() {
parallaxScroll();
});
return false;
});
});
하지만 작동하지 않는 것 같습니다 : (
<nav id="primary">
<ul>
<li>
<h1>Welcome</h1>
<a class="welcome" href="#welcome" data-code="0">View</a>
</li>
<li>
<h1>Step 1: Setup</h1>
<a class="step1" href="#step1" data-code="#step1">Step 1</a>
</li>
<li>
<h1>Step 2: Data Management</h1>
<a class="step2" href="#step2" data-code="#step2">Step 2</a>
</li>
<li>
<h1>Step 3: Configure Cameras</h1>
<a class="step3" href="#step3" data-code="#step3">View</a>
</li>
</ul>
</nav>
어떤 아이디어 : 0 나의 이론은 $(this).click(function(){
실제로 제대로 링크 $(a.welcome).click(function(){
실제 HTML 지금과 같은 스타일의 요소를 호출되지 않는 것입니다?
'each()'는 필요하지 않습니다. 'click()'은 이미 모든 요소에 핸들러를 추가합니다. – SLaks
내가 누락 된 요소가있을 수 있지만 앵커 요소를 사용할 때 선택 요소가 요소 입력에있는 이유는 무엇입니까? – qternion
명백한 복잡성을 줄이려면, 모든'function() {parallaxScroll();}을 단지'parallaxScroll'으로 대체하는 것이 좋을 것입니다 –