2013-10-04 2 views
0

DIV의 클래스를 DOM에서 제거하기 직전에 클래스를 변경하지 못하도록하려면 어떤 방법으로 제거해야하는지 결정해야합니다 실패? jQuery와 knockout을 섞어서 사용하고 있으며, 100 % 시간을 사용할 수있는 녹아웃에서 이렇게하는 "순수한"방법이 있을까요?녹아웃 전에 DIV에서 클래스를 변경하면 DOM 작업에서 제거됩니다.

   self.DeleteDIV = function (el$) { 
       el$.removeClass("foo").addClass("deleted"); 
       setTimeout(function() {       
        self.myObservableArray.splice(el$.index(), 1); 
        } 
       },222); 
      } 

클래스 foo이 배경 이미지를 설정했습니다. 이 클래스는 삭제됩니다. .deleted 클래스는 삭제 될 div에 다른 이미지 (예 : 휴지통 아이콘)를 추가하고 일부 지연 후 항목은 foreach 바인딩을 통해 div를 만든 관찰 가능 배열에서 제거됩니다.

시간 초과 지연으로 재생 한 적이 있지만 일정 시간 동안 재생 아이콘이 화면에 그대로 남아 DIV가 DOM에서 제거되지 않습니다.

P. DeleteDIV는 삭제할 div를 클릭하여 트리거됩니다.

답변

0

당신이하려는 일에 대해 이해하지 못하고 있습니다. 목록에서 div를 삭제하려고합니까?

그래서 클릭 된 사업부 또는 무언가를 받아 들여 제거 뷰 모델의 기능을 작성하는 경우 -

self.DeleteDIV = function (el$) { 
    el$.removeClass("foo").addClass("deleted"); 
    setTimeout(function() {       
     self.myObservableArray.remove(el$); 
     } 
    },222); 
} 
+0

입니다 페이지에서 사라지다. – Tim

+0

내가 사용하기를 희망하는 "시각 표시기"는 배경 이미지의 변경입니다. – Tim

0

당신은 효과를 얻기 위해 몇 가지 애니메이션을 삭제 CSS로 jqueryUI의 $.switchClass을 사용하여야합니다. 여기에 내가 매우 짧게는 클릭-에 있다는 사업부는 DOM에서 제거됩니다 시각적 표시를 표시 한 다음 그 내용을 일으킬해야하는의 DOM에서 DIV를 제거하기 위해 노력하고있어 jsfiddle

self.removeItem=function(item,event){ 
    $(event.target).switchClass('icon-male','icon-male icon-spin',1000,'swing',function(){ 
     self.items.remove(item); 
     } 
    }); 

}; 
+0

감사합니다. 나는 오늘 내 책상으로 돌아올 때마다 나중에 시험해 보겠습니다. 애니메이션이 완료되면 콜백 함수를 실행하여 트릭을 수행해야하는 것처럼 보입니다. '모든 스타일이 움직일 수있는 것은 아닙니다. 예를 들어, 배경 이미지를 애니메이트하는 방법은 없습니다. 애니메이트 할 수없는 스타일은 애니메이션이 끝날 때 변경 될 것입니다. "나는 이것이 스타일 변경 후에 완성 된 콜백이 발생하고 여전히 같은 곤경에 처하지 않았 음을 의미합니다. – Tim

관련 문제