누군가가 나를 도울 수 있습니다.
웹 응용 프로그램에서 큰보기가 있습니다. 왼쪽에는 제품 목록이 있고 오른쪽에는 범주 목록이 있습니다. 제품은 카테고리 내부로 드래그해야합니다.
제품 목록은 observableArray입니다. 목록에 1000 개 이상의 항목이 있으면 성능 문제가 발생합니다 (특히 IE에서). 그래서 제품 자체가 변경되지 않기 때문에, 우리는 그들을 녹아웃 바인딩에서 꺼내 문자열에 연결하고 하나의 노드 만 추가합니다. 여기외부에서 녹아웃 정렬 드래그 앤 드롭
<div data-bind="sortable: {data: Products, beforeMove: $root.verifyProducts}, attr: { 'data-max': MaxProducts }">
<div class="menuEditTab2CatDragItem clearfix" data-bind="attr: { 'data-prodid': Id }">
<div class="menuEditTab3ProdsNameText" data-bind="text: Name"></div>
<div class="pull-right" style="margin-left:8px;"><i style="margin-top:-4px;" class="icon-remove" data-bind="click: $parent.removeProduct"></i>
</div>
<div class="pull-left menuEditTab3ProdsIdText">ID: <span data-bind="text: Id"></span>
</div>
</div>
그리고의 제품 목록에 대한 JS 코드입니다 : 지금은 물론, 바인딩 정렬이 더 이상 작동하지 않습니다 녹아웃 ...
이 카테고리의 템플릿입니다 왼쪽 :
function fillAllProductsTab() {
var parts = '';
allProducts.forEach(function (item) {
parts += '<div id="f_all_' + item.Id + '" >' + // draggable="{data: $data, options:{containment: \'\#menuEditTab3Ce\', revert: \'invalid\'}}"
'<div class="menuEditTab2CatDragItem">' +
'<div>' + item.Name + '</div><div class="clearfix menuEditTab3ProdsIdText">' +
'<div class="pull-left">ID: <span>' + item.Id + '</span></div><div class="pull-right">' +
'<span>' + item.Price + '</span> €</div></div></div></div>';
});
$("#allp").append(parts);
};
이제 나의 생각은 내가 수동으로 제품 목록에 드래그 플러그인 init을 한 후이를 추가 할 수 있었다 :
$('#allp > div').draggable({
//connectToSortable: '#sortable',
helper: 'clone',
revert: 'invalid',
cursor: 'move'
});
내 문제는 내가 함께 일하도록 할 수 없다는 것입니다. 왼쪽 목록은 드래그 가능하며 오른쪽 정렬도 가능하지만 연결이 작동하지 않습니다. 불타고있는 드롭 이벤트가 없습니다 ... 일반적으로 가능합니까? 누군가이 아이디어를 얻기 위해 아이디어가 있다면?
감사합니다. 나는 내일 볼 것이다 ;-) – chris
매우 매우 고마워! 훌륭하게 작동합니다. – chris
Task가 이름과 함께 다른 속성을 가지고 있다면 handleDraggedItem이 어떻게 변경 될까요? 여기에 비슷한 질문이 있습니다 : http : // stackoverflow.co.kr/questions/29715384/knockout-sortable-seating-chart-exampl 대신에 아이템을 복사하는 것 – Arnab