3

好的,问题是,如何将多个处理程序添加到可拖动对话框。

_makeDraggable : function() {
    var self = this, options = this.options, heightBeforeDrag;
    this.uiDialog.draggable( {
        cancel : '.ui-dialog-content',
        handle : '.ui-dialog-titlebar',
        containment : 'document',
        start : function() {
        heightBeforeDrag = options.height;
        $(this).height($(this).height()).addClass("ui-dialog-dragging");
        (options.dragStart && options.dragStart.apply(self.element[0], arguments));
         },
         drag : function() {
        (options.drag && options.drag.apply(self.element[0], arguments));
         },
         stop : function() {
        $(this).removeClass("ui-dialog-dragging").height(heightBeforeDrag);
        (options.dragStop && options.dragStop.apply(self.element[0], arguments));
         }
    });
}

所以我有这个功能,你可以看到它取消了 .ui-dialog-content 和 ads .ui-dialog-titlebar 作为处理程序:

this.uiDialog.draggable( {
    cancel : '.ui-dialog-content',
    handle : '.ui-dialog-titlebar',
    containment : 'document',

不过,我想添加 .menu_inner 作为处理程序,想知道是否可能。

4

1 回答 1

1

handle接受一个 jquery 选择器作为它的参数。所以尝试使用多重选择器:http ://api.jquery.com/multiple-selector/

IE:handle: '.ui-dialog-titlebar, .menu_inner'

编辑:一个骇人听闻的解决方案是说类似的话$('.ui-dialog-titlebar, .menu_inner').addClass('draggable-element'),然后将句柄设置为该类

于 2012-07-11T20:17:18.073 回答