2013-02-18 3 views
0

백본 작업 방법을 배우려고합니다. 현재 jquery UI에서 정렬 할 추가하려면 노력하고있어 : Addy Osmani백본 이벤트가 너무 많이 발생했습니다.

그래서 나는 js 바이올린에서 본 sortable drop 이벤트에 대한 이벤트를 트리거하려고했습니다. 이 이벤트는 앱 뷰에서 함수 (update-order())를 트리거하는 항목보기에서 함수 (drop())를 트리거합니다. 나는이 마지막 함수가 todo리스트를 바꾸고 새로운 순서를 저장하기를 원한다.

내가 가진 문제는 내 함수 updateOrder가 드롭 함수가 한 번만 실행되고 순서 변경이 기록되지 않고 4 번처럼 실행되는 이유이며 그 이유는 무엇입니까?

여기 내 예입니다 : http://www.fgtechs.fr/backbone/ 기본적으로 정렬의 드롭 이벤트에서 순서를 뒤집어 쓰려고합니다.

내가

난 정말 당신의 도움이 필요 ... 내 기능 updateOrder 한 번만 트리거 될 순서의 변화가 기록 ... 그러나이 중 어느 것도 일어나지 좋아했을) 미리 감사를)

여기

은, 내가 그것을 알아 냈어, 나는 속성에 내 갱신 차 이벤트를 트리거이었다 있었다 문제를

<script> 
     $(document).ready(function() { 
      $('#widget-list').sortable({ 
       stop: function(event, ui) { 
        event.stopPropagation() 
        event.preventDefault(); 
        ui.item.trigger('drop', ui.item.index()); 
       } 
      }); 
     });  
    </script> 


//on the drop, we invert the order 
     updateOrder:function(event, model, position){ 
      alert('update-order'); 
      console.log(app.Widgets.length); 
      app.Widgets.each(function (widget, order) { 
       widget.save({ 
        'order': app.Widgets.length-order 
       }); 
      }); 
     } 


//On the event drop, we trigger the function update order 
drop: function(event, position) { 
    this.$el.trigger('update-order', [this.model, position]); 
}, 

답변

0

음을 (당신이 내 예제에서 나머지 부분을 볼 수 있습니다) 내 코드의 일부이다 변경 (주문). 한 방울에 항목보다 많은 순서가 변경 되었기 때문에 이벤트가 여러 번 두 번 트리거되었으므로 업데이트 순서 이벤트를 트리거하는 방식을 변경하면 완벽하게 작동합니다.

관련 문제