2012-04-11 90 views
0

我有一个动态的对话框我想提出...例如如何删除jQuery的对话框的标题上一个动态对话框

var newDiv = $(document.createElement('div')); 

$(newDiv).html('Hello World'); 
$(newDiv).dialog({ 
    closeOnEscape: false, 
    draggable: false, 
    modal: true, 
    resizable: false, 
    width: 725 

}); 

全部是巨大的但我的动态对话已,我不想做一个标题。当然,我可以通过修改以下CSS类来删除它... .ui-dialog-titlebar {display:none}

但是,我只希望此对话框的实例没有标题,我不希望将其应用于我的系统中的所有其他对话框。在动态对话框中删除标题的最佳方式是什么?我正在考虑在对话框中插入CSS方法,像这样... $(newDiv).dialog({... stuff}).css(),但到目前为止没有任何工作。

我认为问题是由于我的动态div没有ID很难引用...任何想法的人?

如果我没有描述我的问题也请说出来,我会改写/扩大......我已经工作了几个小时,我#m的开始发疯请注意...

请注意清晰:我想删除整个标题栏和样式...不只是在标题通常是空字符串。

+0

我故意没有标题集,也许我应该为动态div动态创建ID广告标题的一些属性? – 2012-04-11 10:51:32

+0

对不起,我弄糊涂了你......我会更新这个问题:我想删除整个标题栏和样式......不只是在标题通常是空字符串。 – 2012-04-11 10:55:02

+0

好的 - 我将删除我所有的评论!对不起! – ManseUK 2012-04-11 10:55:52

回答

3

你可以在你的动态对话框中添加一个叫做“dialog-no-title”的CSS类,然后在该类dialog-no-title {display:none}下添加相关的CSS。

要将类添加到DOM元素,请参阅jQuery文档。它看起来像这样:.addClass("dialog-no-title")。我猜你可以这样做:

var newDiv = $(document.createElement('div')); 

$(newDiv).html('Hello World'); 

$(newDiv).dialog({ 
    closeOnEscape: false, 
    draggable: false, 
    modal: true, 
    resizable: false, 
    width: 200, 
    dialogClass: 'dialog-no-title' 
}); 

编辑:更新的代码示例,以反映意见。而这里的工作的jsfiddle你:http://jsfiddle.net/nj2Q9/21/

干杯,

詹姆斯

+0

+1完美解决方案 – ManseUK 2012-04-11 10:57:07

+1

+1,您可以在init事件中使用dialogClass选项或通过.dialog(“option”..添加额外的“dialog-no-title”类 – 2012-04-11 10:59:46

+0

我会玩这个,但是我#m当前得到“未捕获TypeError:对象#没有方法'addClass'” – 2012-04-11 11:05:04

0

亚历克斯K.建议你会怎么做:

$(newDiv).dialog({ 
    closeOnEscape: false, 
    draggable: false, 
    modal: true, 
    resizable: false, 
    width: 725, 
    dialogClass: 'ui-dialog-noheader' 
}); 

然后在你的CSS

.ui-dialog-noheader .ui-dialog-titlebar {display:none} 

其中目标在noheader类内的对话框标题栏。