I have two custom bindings to drag and drop, and have a list of elements that i need to drop into a droppable area, but when this happend I need to remove the dragged element from my source list, I'm doing like the following way, but when the dragged element was remove from the source list,I receive the following error "Unable to get value of the property 'options': object is null or undefined", and the debugger break in my jquery-ui.1.8.17.min.js file, in this line var d=a(this).data("draggable").options
. The problem occurs in the drag binding.
Here is my code:
var viewModelInstance = new ViewModel();
$(document).ready(function () {
$(window).load(
function () {
var _dragged;
ko.bindingHandlers.drag = {
init: function (element, valueAccessor, allBindingsAccessor, viewModel) {
var dragElement = $(element);
var dragOptions = {
helper: 'clone',
revert: true,
start: function () {
_dragged = ko.utils.unwrapObservable(valueAccessor().value);
},
cursor: 'default'
};
dragElement.draggable(dragOptions).disableSelection();
}
};
ko.bindingHandlers.drop =
{
init: function (element, valueAccessor, allBindingsAccessor, viewModel) {
var dropElement = $(element);
var dropOptions = {
drop: function (event, ui) {
var folder = dropElement[0].innerText;
viewModelInstance.UpdateCandidate(_dragged, viewModel, folder);
viewModelInstance.candidates.remove(_dragged);
}
};
dropElement.droppable(dropOptions);
}
};
ko.applyBindings(viewModelInstance);
});
}
);
});
Try using detach() rather than remove().