2010-11-23 2 views
1

... dom에 추가 된 항목을 페이드 아웃하는 방법을 알고 있지만 (이 경우 성공/오류 메시지) 이제 DOM을로드 할 때 필요한 특정 항목을 페이드 아웃하는 코드를 작성하고 AJAX를 통해 항목이 추가되면 별도의 fadeOut 코드를 작성합니다.어떻게 항상 특정 유형의 모든 항목을 페이드 아웃하기 위해 jquery를 작성합니까?

더 좋은 방법이 있나요? .live() 핸들러를 사용하여 보았지만 이벤트가 매개 변수 중 하나로 전달되어야합니다 (좋지 않은 이유는 설정 한 시간이 지난 후에 항목이 사라지 길 원하기 때문입니다).

tldr; DOM으로로드되는지 또는 AJAX를 통해 (예를 들어 AJAX를 통해) 추가되는지 여부에 관계없이 항목을 fadeOut하는 코드 조각을 작성하려고합니다.

+0

내가 – TJB

+0

당신은 DOM 요소가 렌더링 소스 HTML 렌더링 또는 초기 이후에 추가 된 경우 알 선택기를 원하는 ... 페이드 아웃 트리거 이해하기 위해 노력하고있어? hmmm – superfro

+0

@TJB ... jquery의 .live() 호출에 대해 생각하고 어떻게 작동하는지 ...이 항목에 대해 내가하고 싶은 것을 – concept47

답변

1

livequery plugin을 사용하십시오.

$(".fadeOut").livequery(function(){$(this).fadeOut()}); 
+0

이것은 내가 찾고있는 것처럼 보입니다. – concept47

+0

매력처럼 작동했습니다. 감사! – concept47

-1

당신이 DOM에 div를 추가 할 때, 그래서 지금 fadeout_category에 속하는 모든 개체를 쉽게 명령으로 퇴색 할 수있다 예를 들어

<div ...class="your_usual_class fadeout_category other_classes"...> 

에 대한 클래스를 지정

$ (".fadeout_category"). apply_fadeout;

+0

이 항목을 페이드 아웃하기 위해 별도의 호출을하고 싶지 않습니다. 내가 .live()를 사용했다면 자동으로 페이드 아웃하고 싶습니다. .live()는 다음 중 하나로 이벤트 유형이 필요합니다. 해당 매개 변수 – concept47

-1

문제에 대한 가장 "우아한"해결책은 변경을 위해 특정 DOM 노드를 청취하는 .live을 사용하지 않는 것입니다 (항상 선택기의 컨텍스트를 사용하고 콜백은 복잡한 페이지의 속도를 크게 저하시킬 수 있음). 선택기 조건이 충족되면 일반 콜백 만 적용합니다.

첫 번째 항목을 표시하는 기능과 함께 fadeOut을 포함하고자 할 것입니다.

namespace.showMessage = function(message) { 
    $('<div class="message">').text(message).appendTo('body').fadeOut(function(){ 
    $(this).remove(); 
    }); 
} 
+0

지금 내가하고있는 일이 정확히 무엇이며 더 이상하고 싶지 않습니다. – concept47

+0

그럴 경우, 라이브 쿼리가 당신이 원하는 것입니다. 나는 여러 차례에 걸쳐 라이브 쿼리를 사용 했었고, 각각의 경우 라이브 리퀘스트를 추적하기가 너무 어려웠 기 때문에 리팩토링을 끝내었다. 귀하의 응용 프로그램에서 행운을 빈다. –

관련 문제