2012-03-26 52 views
1

的高度我有一个jQuery的对话形式:指定我的jQuery的对话形式

$loading.dialog({ 
    closeOnEscape: false, 
    resizable: false, 
    draggable: false, 
    width: '650px', 
    height: '75', 
    modal: true 
}); 

上述作品。下面我将高度参数从75调整到'75px'。

$loading.dialog({ 
    create: function() { $(".ui-dialog-titlebar").hide(); }, 
    closeOnEscape: false, 
    resizable: false, 
    draggable: false, 
    width: '650px', 
    height: '75px', 
    modal: true 
}); 

它不起作用了。我有一个很小的表单。我们如何解释?

感谢。

回答

1

这是因为height选项文件采取任何数字或字符串"auto"

height Number Default: 'auto' 

对话框的高度,以像素为单位。指定'auto'也支持 以根据其内容调整对话框。

如您所见,px后缀不受支持,因此您的height选项将被忽略。

+0

好吧,但为什么宽度接受px像'650px'? – Bronzato 2012-03-26 12:44:40

+2

@Bronzato,这是一个有点棘手的解释(参见源代码[这里](http://code.google.com/p/jquery-ui/source/browse/trunk/ui/jquery.ui .dialog.js))。基本上,'width'选项直接传递给'css()',它支持可选的'px'后缀。然而'height'选项用于计算('Math.max(options.height - nonContentHeight,0)'),而'px'后缀则会中断计算。 – 2012-03-26 12:49:00

2

jQuery UI docsheight必须是一个数字:

对话框的高度,以像素为单位。指定'auto'也支持根据其内容来调整对话框。

+0

好吧,但为什么宽度接受象'650px'像素? – Bronzato 2012-03-26 12:44:13

+0

由于FrédéricHamidi已经给出了很好的答案,所以我应该建议你总是阅读文档并避免[巧合编程](http://pragprog.com/the-pragmatic-programmer/extracts/coincidence)。 – alextercete 2012-03-26 12:59:17