2012-03-09 8 views
0

나는 Forrst에서이 질문을하고 두 가지 코드 응답을 받았습니다. 한 사람은 일했고 한 사람은 그렇지 않았습니다. 나는 누군가가 내게 왜 두 번째 것이 효과가 없는지 설명 할 수 있기를 바랬다.jQuery 페이드, 애니메이션 및 토글?

내 목표는 기본적으로 내 검색을 숨기는 것이 었습니다. 검색 아이콘을 클릭하면 검색이 페이드 인되도록 전환하고 왼쪽으로 약간 이동합니다. 검색 아이콘을 다시 클릭하면 페이드 아웃되고 오른쪽으로 이동합니다.

$(function() { 
var search = $('#searchform').css('opacity', 0), 
    i = 0; 

$('#search-img').click(function() { 
    search.animate({opacity: 'toggle', left: i % 2 == 0 ? 0 : -10}); 
    i++; 
}); 
}); 

사람이 두 번째 코드와 어떤 문제를 볼 수 있습니까 : 여기

$(function() { 
    var search = $('#searchform'); 
    search.css('opacity', 0); 

    $('#search-img').toggle(function() { 
    search.animate({opacity: 1}, {queue: false, duration: 'slow'}); 
    search.animate({ left: "-10px" }, 'slow'); 
    }, 
function() { 
    search.animate({opacity: 0}, {queue: false, duration: 'slow'}); 
    search.animate({ left: "+10px" }, 'slow'); 
    } 
);  

}); 

내가 검색 아이콘 아무것도 클릭 할 때 그 코드가 어떻게됩니까입니다 : 여기

일했다 코드입니다 뭐야?

답변

0

var는 전역 변수가 아니기 때문에 사용할 수 없습니다. $() 내에서 무언가를 전역으로 만들려면, 그것을 윈도우 객체에 할당하면됩니다.

수정은 이것이다 :

$(function() { 
var search = $('#searchform').css('opacity', 0), 
    window.i = 0; 

$('#search-img').click(function() { 
    search.animate({opacity: 'toggle', left: i % 2 == 0 ? 0 : -10}); 
    window.i++; 
}); 
}); 
+0

내가 그 시도 할 때 나는이 오류를 얻고있다 "catch되지 않은 구문 에러 :. 예기치 않은 토큰" – Tom

+0

방금 ​​코드를 복사하여 붙여 넣은 다음 창 개체를 추가합니다. 오류는 css 다음에 쉼표 ('opacity', 0)입니다. 세미콜론이어야합니다. 대신. –

+0

JS가 내 CSS 파일에서 사용 설정된 사람들을 위해 기본적으로 검색을 숨기는 결과를 가져 왔습니다. jQuery를이 $$ ('# search-img')처럼 보이게 만들었습니다. click (function() { search.animate ({opacity : '토글', 왼쪽 : i % 2 == 0? 0 : -10 }); window.i ++; }); 그리고 그것은 지금 on/off 전환되지만 전혀 움직이지 않습니다. – Tom

관련 문제