浏览代码

Merge pull request #13 from AndrewEastwood/master

added new option: draggable
nakupanda 12 年之前
父节点
当前提交
6b60ae5644
共有 1 个文件被更改,包括 28 次插入2 次删除
  1. 28 2
      js/bootstrap-dialog.js

+ 28 - 2
js/bootstrap-dialog.js

@@ -27,7 +27,8 @@ var BootstrapDialog = null;
             data: {},
             onshow: null,
             onhide: null,
-            autodestroy: true
+            autodestroy: true,
+            draggable: true
         };
         this.indexedButtons = {};
         this.registeredButtonHotkeys = {};
@@ -108,6 +109,31 @@ var BootstrapDialog = null;
             .append(this.getModalBody())
             .append(this.getModalFooter());
 
+            var _isMouseDown = false;
+            var _self = this;
+            var _mouseOffset = {};
+            if (this.options.draggable) {
+                this.getModalHeader().on('mousedown', function (event) {
+                    _isMouseDown = true;
+                    var _dialogOffset = _self.getModalContent().offset();
+                    _mouseOffset = {
+                        top: event.clientY - _dialogOffset.top,
+                        left: event.clientX - _dialogOffset.left
+                    }
+                });
+                this.getModal().on('mouseup mouseleave', function () {
+                    _isMouseDown = false;
+                });
+                $('body').on('mousemove', function (event) {
+                    if (!_isMouseDown)
+                        return;
+                    _self.getModalContent().offset({
+                        top: event.clientY - _mouseOffset.top,
+                        left: event.clientX - _mouseOffset.left,
+                    });
+                });
+            }
+
             return this;
         },
         createModal: function() {
@@ -752,4 +778,4 @@ var BootstrapDialog = null;
                 }]
         }).open();
     };
-}(window.jQuery);
+}(window.jQuery);