1 | /*
|
---|
2 | * draggable_core.js
|
---|
3 | */
|
---|
4 |
|
---|
5 | var el, offsetBefore, offsetAfter, dragged;
|
---|
6 |
|
---|
7 | var drag = function(handle, dx, dy) {
|
---|
8 | var element = el.data("draggable").element;
|
---|
9 | offsetBefore = el.offset();
|
---|
10 | $(handle).simulate("drag", {
|
---|
11 | dx: dx || 0,
|
---|
12 | dy: dy || 0
|
---|
13 | });
|
---|
14 | dragged = { dx: dx, dy: dy };
|
---|
15 | offsetAfter = el.offset();
|
---|
16 | }
|
---|
17 |
|
---|
18 | var moved = function (dx, dy, msg) {
|
---|
19 | msg = msg ? msg + "." : "";
|
---|
20 | var actual = { left: offsetAfter.left, top: offsetAfter.top };
|
---|
21 | var expected = { left: offsetBefore.left + dx, top: offsetBefore.top + dy };
|
---|
22 | same(actual, expected, 'dragged[' + dragged.dx + ', ' + dragged.dy + '] ' + msg);
|
---|
23 | }
|
---|
24 |
|
---|
25 | function restoreScroll(what) {
|
---|
26 | if(what) {
|
---|
27 | $(document).scrollTop(0); $(document).scrollLeft(0);
|
---|
28 | } else {
|
---|
29 | $("#main")[0].scrollTop = 0; $("#main")[0].scrollLeft = 0;
|
---|
30 | }
|
---|
31 | }
|
---|
32 |
|
---|
33 | (function($) {
|
---|
34 |
|
---|
35 | module("draggable");
|
---|
36 |
|
---|
37 | test("element types", function() {
|
---|
38 | var typeNames = ('p,h1,h2,h3,h4,h5,h6,blockquote,ol,ul,dl,div,form'
|
---|
39 | + ',table,fieldset,address,ins,del,em,strong,q,cite,dfn,abbr'
|
---|
40 | + ',acronym,code,samp,kbd,var,img,object,hr'
|
---|
41 | + ',input,button,label,select,iframe').split(',');
|
---|
42 |
|
---|
43 | $.each(typeNames, function(i) {
|
---|
44 | var typeName = typeNames[i];
|
---|
45 | el = $(document.createElement(typeName)).appendTo('body');
|
---|
46 | (typeName == 'table' && el.append("<tr><td>content</td></tr>"));
|
---|
47 | el.draggable({ cancel: '' });
|
---|
48 | drag(el, 50, 50);
|
---|
49 | moved(50, 50, "<" + typeName + ">");
|
---|
50 | el.draggable("destroy");
|
---|
51 | el.remove();
|
---|
52 | });
|
---|
53 | });
|
---|
54 |
|
---|
55 | test("No options, relative", function() {
|
---|
56 | el = $("#draggable1").draggable();
|
---|
57 | drag(el, 50, 50);
|
---|
58 | moved(50, 50);
|
---|
59 | });
|
---|
60 |
|
---|
61 | test("No options, absolute", function() {
|
---|
62 | el = $("#draggable2").draggable();
|
---|
63 | drag(el, 50, 50);
|
---|
64 | moved(50, 50);
|
---|
65 | });
|
---|
66 |
|
---|
67 | })(jQuery);
|
---|