jQuery限制选择器到它的父级

时间:2012-08-02 05:00:24

标签: javascript jquery jquery-ui jquery-selectors

我正在尝试为jQuery创建一个上下文菜单,我正在使用jQuery UI对话框并进行修改 它符合我的需求:

var menu = $(this);
menu.dialog('option', 'position', [jsEvent.clientX, jsEvent.clientY]);
    menu.unbind('dialogopen');
    menu.bind('dialogopen', function(event, ui) {

        $('.ui-dialog-titlebar').hide();
        $('.ui-widget-overlay').unbind('click');
        $('.ui-widget-overlay').css('opacity', 0);
        $('.ui-widget-overlay').click(function() {
            menu.dialog('close');
        });
    });
    menu.dialog('open');

现在,这只有在没有使用.ui-dialog-titlebar的用户界面时才有效,因为当上下文菜单触发时它们会消失

我想到了这样做:

var id = '#'+$(this).attr('id');

并仅在我的菜单中选择元素

$(id+' .ui-dialog-titlebar').hide();

但它似乎不起作用,.ui-dialog-titlebar仍在那里

如何选择菜单中的元素

3 个答案:

答案 0 :(得分:1)

$('.ui-dialog-titlebart', this).hide()

$('你想要的项目',这个)是仅当它是当前元素的子项时选择项目的快捷方式

答案 1 :(得分:1)

要在另一个元素中查找具有特定类的所有元素,您可以使用find()

$(this).find('.ui-dialog-titlebart').hide();

如果您想隐藏除UL元素之外的某个类的所有元素:

$('.ui-dialog-titlebar').not('ul').hide();

或仅定位LI元素

$('li.ui-dialog-titlebar').hide();

答案 2 :(得分:1)

你可以这样试试,

var menu = $(this);
$(menu).find('.ui-dialog-titlebar').hide();

您可以参考jQuery Selector。如果需要..