Tôi đã xem post bởi Remy Sharp và triển khai một ví dụ cơ bản trong Ember.js, xem http://jsfiddle.net/pangratz666/DYnNH/.
tay lái:
<script type="text/x-handlebars" >
Drag and drop the green and red box onto the blue one ...
{{view App.Box class="box green"}}
{{view App.Box class="box red"}}
{{view App.DropTarget class="box blue"}}
</script>
Javascript:
DragNDrop = Ember.Namespace.create();
DragNDrop.cancel = function(event) {
event.preventDefault();
return false;
};
DragNDrop.Dragable = Ember.Mixin.create({
attributeBindings: 'draggable',
draggable: 'true',
dragStart: function(event) {
var dataTransfer = event.originalEvent.dataTransfer;
dataTransfer.setData('Text', this.get('elementId'));
}
});
DragNDrop.Droppable = Ember.Mixin.create({
dragEnter: DragNDrop.cancel,
dragOver: DragNDrop.cancel,
drop: function(event) {
var viewId = event.originalEvent.dataTransfer.getData('Text');
Ember.View.views[viewId].destroy();
event.preventDefault();
return false;
}
});
App.Box = Ember.View.extend(DragNDrop.Dragable);
App.DropTarget = Ember.View.extend(DragNDrop.Droppable);
này sẽ hứa hẹn, và tương tự như những gì tôi có trong ứng dụng của riêng tôi. Nhưng nó sẽ không thực sự hỗ trợ các trình duyệt không hỗ trợ các thuộc tính có thể kéo và có thể phân tách HTML5, đó là những gì tôi đang ở đây. Rõ ràng là tôi quan tâm nhất đến sự hỗ trợ của IE :) –
Hmm, có vẻ như nó được hỗ trợ trong IE, xem http://caniuse.com/#feat=dragndrop ... – pangratz
bạn có thể cập nhật fiddle của mình với jquery 1.7 không? Nó dường như bị hỏng bằng cách sử dụng cạnh jQuery. –