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-dialog-titlebarこれは、コンテキスト メニューが起動するたびに消えるため、使用する UI がない場合にのみ機能します。

私はこれを行うことを考えました:

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

メニューでのみ要素を選択します

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

しかし、それは機能していないようです、.ui-dialog-titlebarまだそこにあります

メニューのみの要素を選択するにはどうすればよいですか?

4

3 に答える 3

1

このように試すことができます。

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

jQuery Selectorを参照できます。必要に応じて..

于 2012-08-02T05:10:23.773 に答える
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();

elements 以外の特定のクラスを持つすべての要素を非表示にする場合UL:

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

またはLI要素のみを対象とする

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