2010-04-28 73 views
0

我有这段代码,它打开新的jquery-ui对话框,然后隐藏对话框的标题栏。jQuery选择器。帮助新手

<div id="keyboard" class="keyboard dialogs">...</div> 

 

$("#keyboard").dialog({ 
     width: 1136, 
     height: 437, 
     position: ['center',400], 
     closeOnEscape: false, 
     autoOpen: false, 
     resizable: false, 
     open: function(event, ui) { 
      $(".ui-dialog-titlebar").hide(); // <-- this selector i want to change 
     } 
    }); 

但是$( “UI的对话框的标题栏”)选择所有的标题栏。我如何让更改选择器只隐藏该标题栏?

回答

0

为了让你能做到这一点的标题栏:

$(this).prev('.ui-dialog-titlebar').hide(); 

对话框看起来大致是这样的以html:

<div class="ui-dialog"> 
    <div class="ui-dialog-titlebar"></div> 
    <div id="keyboard" class="ui-dialog-content"> <!-- "this" element --> 
    Your stuff 
    </div> 
</div> 

当然还有更多的课程,但基本上你需要返回一个元素,前面的兄弟到this是你想要隐藏的标题栏。

+0

谢谢。这正是我正在寻找的 – Shamanu4 2010-04-29 06:19:39

0

给标题栏你试图隐藏一个id或一些你可以测试的区别特征。

+0

我不能(不知道如何)给这个元素添加id,因为它的创建是由jquery-ui库处理的。 – Shamanu4 2010-04-28 15:33:13

0

不同的地方相对于键盘DIV存在的工具栏,你必须遍历DOM使用这样的事情来得到它:

$("this").parents(".ui-dialog-titlebar").hide(); 
+0

这不起作用 – Shamanu4 2010-04-28 15:14:12

+0

你可以发布相关的html标记,所以我们可以看到.ui-dialog-titlebar出现在这个#keyboard元素的相对位置 – derek 2010-04-28 16:45:31

0

我注意到在公开处理程序ui参数。那是刚刚打开的对话框的引用吗?如果是这样,这将是简单:

ul.find('.ui-dialog-titlebar').hide(); 
+0

在这种情况下,“ui”是一个空对象。 – Shamanu4 2010-04-28 14:21:18