My problem is that I need a way of aborting a deferred to stop errors occurring in my application.
I have created a jsfiddle with a simple overview of my problem, which is that a done handler is trying to act on an element that has been removed between the api call starting and it being finished.
Here is an overview of my problem - http://jsfiddle.net/gfNMA/3/
And here how far how I have got
api: function(options) {
var self = this,
deferred = $.Deferred(),
handle = function() {
if (!self || !self.element) {
// I need to clear the deferred here
// E.g deferred.abort()
}
deferred[arguments[1] === 'success' ? 'resolve' : 'reject']
.apply(null, arguments);
}
$.ajax(options).always(handle);
return deferred;
}