When enabling dragging in Raphael js, if you are using raphael-draggable, then you might run into following error when you try to enable the dragging on any element -
Uncaught TypeError: Cannot call method 'enable' of undefined
That line is -
The issue is in Raphale 2.0 context is broken, and in order to fix that you have can add following function -
This should be able to fix the issue and you will be able to enable dragging for individual element or your Raphael object.
Uncaught TypeError: Cannot call method 'enable' of undefined
That line is -
paper.draggable.enable()
The issue is in Raphale 2.0 context is broken, and in order to fix that you have can add following function -
// to fix broken context issue with Raphael 2.0
Raphael.fn.fixNS = function(){
var r = this;
for (var ns_name in Raphael.fn) {
var ns = Raphael.fn[ns_name];
if (typeof ns == 'object') for (var fn in ns) {
var f = ns[fn];
ns[fn] = function(){ return f.apply(r, arguments); }
}
}
}
Once you add it, call that function below your Raphael block initialization -
var paper = new Raphael(obj.attr('id'), chart_width, chart_height);
paper.fixNS();
This should be able to fix the issue and you will be able to enable dragging for individual element or your Raphael object.
paper.draggable.enable();