2012-04-25 2 views
1

jQuery 라이브러리에서 simples 액션을 다루고 있습니다. 여기 jQuery 스크립트를 최소화하는 방법

$('#hasAccount').click(function() { 
     $('.authForm').slideDown(500, function() { 
      if ($('.shippingAddress').is(':visible')) { 
       $('.shippingAddress').slideUp(250); 
      } 
     }); 
}); 

$('#hasNotAccount').click(function() { 
     $('.shippingAddress').slideDown(500, function() { 
      if ($('.authForm').is(':visible')) { 
       $('.authForm').slideUp(250); 
      } 
     }); 
}); 

는 코드 작업 : 그것은 매우 간단 http://jsfiddle.net/6tZQ2/2/

하지만 한 작업으로이 스크립트를 minimalize 어떤 작성 솔루션이 있는지 궁금하네요?

감사

:-)
+0

어떤 실제적인 사용은 무엇입니까? 아니면 더 많은 코드 골프를 치고 있습니까? 그렇다면이 태그를 포함 할 수 있습니다! –

답변

0

당신은 slideToggle를 사용하고 잃을 수있는 문

여기
+0

네,하지만 slideToggle을 사용하면 라디오 버튼을 체크하여 박스를 닫을 수 있습니다 :-( – Laurent

0

나중에 가면 - 더 나은/친절/컴팩트 ... 이것이이 할 수있는 수백만의 방법이 있지만 그래서 아마 더 나은 그것을 다른 방법을 할 :)

-이 기반 name 속성은 - 비록/

http://jsfiddle.net/neuroflux/6tZQ2/3/

[편집] : 내 마음 ...에 빠른

+0

답장을 보내 주셔서 감사합니다 Neuro : o) – Laurent

+0

Neuro, 압축 된 스크립트에 hasClass()를 사용할 수 있다고 생각합니까? – Laurent

+0

예! http://jsfiddle.net/neuroflux/6tZQ2/17/ –

0

내가 JQuery와에 전문가가 아니에요, 그것을 시도 :

$('input[name="account"]').click(function(e) { 
    if(e.target.id == 'hasAccount') { 
     $('.authForm').slideDown(500, function() { 
      if ($('.shippingAddress').is(':visible')) { 
       $('.shippingAddress').slideUp(250); 
      } 
     }); 
    } else { 
     $('.shippingAddress').slideDown(500, function() { 
      if ($('.authForm').is(':visible')) { 
       $('.authForm').slideUp(250); 
      } 
     }); 
    } 
}); 
0

방법보다 일반적인 DOM에서 두 기능을 포괄 대해.

1
+0

나는 이것이 가장 효율적인 대답은 sofar (같은 요소에 대한 여러 $() 검색을 실행하지 주어진)라고 말하고 싶습니다. 내가 말하고자하는 것은 $ ('input [name = "account"]') 대신 $ ('# hasAccount, #hasNotAccount')를 사용하는 것입니다.) 및 id 선택자는 일반적으로보다 효율적입니다. – lucideer

+0

답변 해 주셔서 감사합니다. – Laurent

관련 문제