好的问题是,如何在可拖动的对话框中添加多个处理程序。
_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作为处理程序,想知道它是否可能。
答案 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')
之类的东西,然后设置该类的句柄