如何向jQuery Dialog添加多个拖动处理程序

时间:2012-07-11 18:22:28

标签: jquery jquery-ui jquery-ui-dialog

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

_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和广告.ui-dialog-titlebar作为处理程序:

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

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

1 个答案:

答案 0 :(得分:1)

handle接受jquery选择器作为其参数。因此,请尝试使用多重选择器:http://api.jquery.com/multiple-selector/

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

编辑: 一个hacky解决方案是说$('.ui-dialog-titlebar, .menu_inner').addClass('draggable-element')之类的东西,然后设置该类的句柄