2012-11-18 4 views
0

Stack에서 찾은 코드에서이 피들을 만들었지 만 오류가 발생했습니다. 제발 도와 줄 수 있어요.jquery error undefined function

내 바이올린 : http://jsfiddle.net/422steve/DVNGc/

원래 답변 : 나는 점점 오전 https://stackoverflow.com/a/13000179/501173

오류는 다음과 같습니다 형식 오류 :

$('.holder').on('click','a',function(e){ 
    e.preventDefault(); 
    var $allExtended = $(this).closest('.wrapperdoo').find('.extended'), 
     $extended = $allExtended.eq($(this).index()),   
     doIt= ($extended.is(':visible')) ? $extended.slideUp() : ($allExtended.slideUp()) ($extended.slideDown()); 
}); 
+0

올바른 구문조차 없습니다. '($ allExtended.slideUp()) ($ extended.slideDown())'이게 뭐야? –

답변

2

다음은 무슨 일입니까? 마지막 세 줄에서 세 가지 연산에서 두 가지 함수를 호출하려고합니다. 그건 불가능합니다. if 블록을 사용해야합니다. 여기 내가 어떻게 그것을 다시 썼는지입니다. 당신이 어떤 목적으로 doIt 변수를 사용하는 경우 나도 몰라,하지만 당신은 undefined를 확인하는 것이 좋습니다 :

$('.holder').on('click','a',function(e){ 
    e.preventDefault(); 
    var $allextended = $(this).closest('.wrapperdoo').find('.extended'), 
     $extended = $allextended.eq($(this).index()), 
     doIt = undefined; 

    if ($extended.is(":visible")) { 
     doIt = $extended.slideUp();    
    } else { 
     $allextended.slideUp(); 
     doIt = $extended.slideDown(); 
    } 
});​ 

--- 편집 ---

가 클래스를 추가하려면 클릭되고있는 HREF, 그냥 함수에서 다음과 같이 그것을 : 당신이이 완료되면 클래스를 제거하려면

$(this).addClass('class'); 

,이 같은 않습니다. 첫째,과 같이, 전역 변수 (그래서 this 변수가 혼합되지 않음)로이 변수를 할당 : 당신의 slideUp() 또는 slideDown() 기능에서 다음

var sender = $(this); 

을, 두 번째 매개 변수에 대한 콜백입니다 완료되었습니다 :

$allextended.slideUp(500, function() { sender.removeClass('class'); }); 
+0

완벽하게 선택하고 투표 한 – 422

+0

약간의 문제. 컨테이너 div 내에 다른 href 링크가 있으므로 슬라이드를 트리거하는 href에 클래스를 추가해야합니다. 당신이 생각할 수있는 수정 사항이 있습니까, href 클래스가 있다고 말할 수 있습니다. – 422

1
: $ allExtended.slideUp은()

JS 함수 아니다

($allextended.slideUp()) ($extended.slideDown())은 매우 잘못되었습니다.
작성한 코드는 slideUp()을 호출 한 다음 slideUp의 반환 값을 함수로 호출하여 slideDown()을 전달합니다.

두 문장을 실행하려는 것 같습니다. 그렇게하려면 if 블록이 필요합니다.

+0

thankyou :) 대답은 – 422