Develop and Download Open Source Software

Browse Subversion Repository

Diff of /js/draggable.js

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 6 by berupon, Sat Dec 5 02:36:36 2009 UTC revision 8 by berupon, Mon Dec 7 01:59:08 2009 UTC
# Line 12  var Draggable = function() { Line 12  var Draggable = function() {
12                    
13          var clickedElement = null;          var clickedElement = null;
14          var dragElement = null;          var dragElement = null;
15            var elems = null;
16                    
17          var onMouseDownHandler = function(e) {          function endDrag() {
18                  dragging = true;                  dragging = false;
19                  clickedElement = Event.element(e);                  clickedElement = null;
20                  var attr = clickedElement.attributes.getNamedItem("dragtarget");                  dragElement = null;
21            }
22            
23            function getDragTarget(elem) {
24                    var attr = elem.attributes.getNamedItem("dragtarget");
25                    var ret = null;
26                  if (attr) {                  if (attr) {
27                          dragElement = $(attr.value);                          ret = $(attr.value);
28                          if (!dragElement) {                          if (!ret) {
29                                  alert("Draggable dragtarget not found!");                                  alert("Draggable dragtarget not found!");
30                                    return;
31                          }                          }
32                  }else {                  }else {
33                          dragElement = clickedElement;                          ret = clickedElement;
34                  }                  }
35                    return ret;
36            }
37            
38            var onMouseDownHandler = function(e) {
39                    clickedElement = Event.element(e);
40                    dragElement = getDragTarget(clickedElement);
41                    dragging = true;
42                  dragStartMousePos = Event.pointer(e);                  dragStartMousePos = Event.pointer(e);
43                  dragElementStartPos = [NaN0(parseInt(dragElement.style.left)), NaN0(parseInt(dragElement.style.top))];                  dragElementStartPos = [NaN0(parseInt(dragElement.style.left)), NaN0(parseInt(dragElement.style.top))];
44                    
45                    var maxZIndex = 0;
46                    for (var i=0; i<elems.length; ++i) {
47                            var elem = getDragTarget(elems[i]);
48                            maxZIndex = Math.max(elem.style.zIndex, maxZIndex);
49                    }
50                    dragElement.style.zIndex = maxZIndex + 1;
51                  Event.stop(e);                  Event.stop(e);
52          };          };
53                    
54          this.attach = function(){          this.attach = function(){
55                  var elems = getElementsByClassName('draggable');                  elems = getElementsByClassName('draggable');
56                  for (var i=0; i<elems.length; ++i) {                  for (var i=0; i<elems.length; ++i) {
57                          var elem = elems[i];                          var elem = elems[i];
58                          Event.observe(elem, 'mousedown', onMouseDownHandler);                          Event.observe(elem, 'mousedown', onMouseDownHandler);
# Line 40  var Draggable = function() { Line 61  var Draggable = function() {
61          Event.observe(window, 'load', this.attach);          Event.observe(window, 'load', this.attach);
62                    
63          Event.observe(document, 'mouseup', function(){          Event.observe(document, 'mouseup', function(){
64                  dragging = false;                  endDrag();
                 clickedElement = null;  
                 dragElement = null;  
65          });          });
66          Event.observe(document, 'mousemove', function(e){          Event.observe(document, 'mousemove', function(e){
67                  if (!dragging) {                  if (!dragging) {
# Line 57  var Draggable = function() { Line 76  var Draggable = function() {
76                  dragElement.style.top = dragElementStartPos[1] + diffMousePos[1] + "px";                  dragElement.style.top = dragElementStartPos[1] + diffMousePos[1] + "px";
77          });          });
78          Event.observe(document, 'blur', function(){          Event.observe(document, 'blur', function(){
79                  dragging = false;                  endDrag();
80          });          });
81                    
82                    

Legend:
Removed from v.6  
changed lines
  Added in v.8

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26