0

我正在尝试为 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的情况下才有效,.ui-dialog-titlebar因为它们会在上下文菜单触发时消失

我想过这样做:

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

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

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

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

如何在菜单中选择元素?

4

3 回答 3

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

$('the item you want', this) 是仅当它是当前元素的子元素时才选择该项目的快捷方式

于 2012-08-02T05:03:25.220 回答
1

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

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

如果您想隐藏具有特定类的所有元素,除了UL元素:

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

或仅针对LI元素

$('li.ui-dialog-titlebar').hide();
于 2012-08-02T05:08:22.983 回答
1

你可以这样试试

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

你可以参考jQuery 选择器。如果需要的话..

于 2012-08-02T05:10:23.773 回答