2008-06-06 03:58:15 +00:00
|
|
|
/*
|
2009-02-02 07:12:37 +00:00
|
|
|
* draggable_core.js
|
2008-06-06 03:58:15 +00:00
|
|
|
*/
|
2009-02-01 00:25:58 +00:00
|
|
|
|
2008-06-07 06:09:04 +00:00
|
|
|
var el, offsetBefore, offsetAfter, dragged;
|
|
|
|
|
2012-04-19 14:27:06 +00:00
|
|
|
function drag(handle, dx, dy) {
|
2008-06-07 06:09:04 +00:00
|
|
|
var element = el.data("draggable").element;
|
|
|
|
offsetBefore = el.offset();
|
|
|
|
$(handle).simulate("drag", {
|
|
|
|
dx: dx || 0,
|
|
|
|
dy: dy || 0
|
2008-06-04 02:34:33 +00:00
|
|
|
});
|
2008-06-07 06:09:04 +00:00
|
|
|
dragged = { dx: dx, dy: dy };
|
|
|
|
offsetAfter = el.offset();
|
|
|
|
}
|
|
|
|
|
2012-04-19 14:27:06 +00:00
|
|
|
function moved(dx, dy, msg) {
|
2008-06-07 06:09:04 +00:00
|
|
|
msg = msg ? msg + "." : "";
|
2012-04-19 14:27:06 +00:00
|
|
|
var actual = { left: offsetAfter.left, top: offsetAfter.top },
|
|
|
|
expected = { left: offsetBefore.left + dx, top: offsetBefore.top + dy };
|
2012-02-28 14:56:32 +00:00
|
|
|
deepEqual(actual, expected, 'dragged[' + dragged.dx + ', ' + dragged.dy + '] ' + msg);
|
2008-06-07 06:09:04 +00:00
|
|
|
}
|
2008-06-04 02:34:33 +00:00
|
|
|
|
2009-02-01 00:25:58 +00:00
|
|
|
function restoreScroll(what) {
|
|
|
|
if(what) {
|
|
|
|
$(document).scrollTop(0); $(document).scrollLeft(0);
|
|
|
|
} else {
|
|
|
|
$("#main")[0].scrollTop = 0; $("#main")[0].scrollLeft = 0;
|
|
|
|
}
|
2008-06-07 17:18:40 +00:00
|
|
|
}
|
|
|
|
|
2009-02-01 00:25:58 +00:00
|
|
|
(function($) {
|
2008-06-06 06:34:09 +00:00
|
|
|
|
2008-06-07 18:03:19 +00:00
|
|
|
module("draggable");
|
2008-06-04 02:34:33 +00:00
|
|
|
|
2008-06-07 06:09:04 +00:00
|
|
|
test("element types", function() {
|
2012-04-19 14:27:06 +00:00
|
|
|
var typeNames = ('p,h1,h2,h3,h4,h5,h6,blockquote,ol,ul,dl,div,form' +
|
|
|
|
',table,fieldset,address,ins,del,em,strong,q,cite,dfn,abbr' +
|
|
|
|
',acronym,code,samp,kbd,var,img,object,hr' +
|
|
|
|
',input,button,label,select,iframe').split(',');
|
2008-06-07 06:09:04 +00:00
|
|
|
|
|
|
|
$.each(typeNames, function(i) {
|
|
|
|
var typeName = typeNames[i];
|
|
|
|
el = $(document.createElement(typeName)).appendTo('body');
|
2012-04-19 14:27:06 +00:00
|
|
|
(typeName === 'table' && el.append("<tr><td>content</td></tr>"));
|
2008-06-07 06:09:04 +00:00
|
|
|
el.draggable({ cancel: '' });
|
|
|
|
drag(el, 50, 50);
|
|
|
|
moved(50, 50, "<" + typeName + ">");
|
|
|
|
el.draggable("destroy");
|
|
|
|
el.remove();
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
2008-06-04 02:34:33 +00:00
|
|
|
test("No options, relative", function() {
|
2008-06-07 06:09:04 +00:00
|
|
|
el = $("#draggable1").draggable();
|
|
|
|
drag(el, 50, 50);
|
|
|
|
moved(50, 50);
|
2008-06-04 02:34:33 +00:00
|
|
|
});
|
|
|
|
|
|
|
|
test("No options, absolute", function() {
|
2008-06-07 06:09:04 +00:00
|
|
|
el = $("#draggable2").draggable();
|
|
|
|
drag(el, 50, 50);
|
2008-11-18 02:55:25 +00:00
|
|
|
moved(50, 50);
|
2008-06-04 02:34:33 +00:00
|
|
|
});
|
|
|
|
|
2008-06-09 05:59:18 +00:00
|
|
|
})(jQuery);
|