запуск события щелчка на селекторе

0

Я пытаюсь получить событие щелчка, чтобы отключить руководство для плагина, который использует селектор.

подключаемый модуль.

 $( function ()
            {
                $.contextMenu( {
                    selector: '.context-menu-one',
                    callback: function ( key, options )
                    {
                        var m = "clicked: " + key;
                        window.console && console.log( m ) || alert( m );
                    },
                    items: {
                        "edit": { name: "Edit", icon: "edit" },
                        "cut": { name: "Cut", icon: "cut" },
                        "copy": { name: "Copy", icon: "copy" },
                        "paste": { name: "Paste", icon: "paste" },
                        "delete": { name: "Delete", icon: "delete" },
                        "sep1": "---------",
                        "quit": { name: "Quit", icon: "quit" }
                    }
                } );

                $( '.context-menu-one' ).on( 'click', function ( e )
                {
                    alert( 'clicked', this );
                } )
            } );

Я попробовал два способа стрелять, но я не могу заставить его работать. $ ('.context-menu-one').trigger('click'); или $ ('.context-menu-one').click();

Есть специальный способ запускать селектор. Я полагал, что это объяснялось где-то, но мои поиски подошли к концу.

--------- обновление, добавляющее больше окружающего кода -----------

 //local functions
    $( function ()
    {//override right click.

        $( this ).bind( "contextmenu", function ( e )
        {
            alert( 1 );// users right clicked
            var overRide = true;

            //set up the right click menu
            $( function ()
            {
                $.contextMenu( {
                    selector: '.context-menu-one',
                    callback: function ( key, options )
                    {
                        var m = "clicked: " + key;
                        window.console && console.log( m ) || alert( m );
                    },
                    items: {
                        "edit": { name: "Edit", icon: "edit" },
                        "cut": { name: "Cut", icon: "cut" },
                        "copy": { name: "Copy", icon: "copy" },
                        "paste": { name: "Paste", icon: "paste" },
                        "delete": { name: "Delete", icon: "delete" },
                        "sep1": "---------",
                        "quit": { name: "Quit", icon: "quit" }
                    }
                } );

                $( '.context-menu-one' ).on( 'click', function ( e )
                {
                    alert( 'clicked', this );
                } )
            } );

            //bring up the menu
            $( '.context-menu-one' ).trigger( {
                type: 'mousedown',
                which: 1
            } );

            if (overRide)  e.preventDefault();
        } );
    } );

Мое намерение здесь состоит в том, чтобы просто щелкнуть правой кнопкой мыши, чтобы меню выходило вручную не на основе события.

  • 0
    Как выглядит ваш HTML 'context-menu-one'? Где вы хотите, чтобы вызвать щелчок?
  • 0
    только что добавили редактирование выше, я хочу, чтобы он запускался сразу после его создания. Я уже поймал свой правый щелчок, затем я строю свое меню, просто не могу заставить его появиться.
Теги:
click
selector

2 ответа

0
Лучший ответ

На основе документации, взятой из демонстрации документации. Следующий пример ждет загрузки документа и после задержки 1 секунды программно открывает контекстное меню:

<body>
    <div class="dummyDiv box menu-1"/>
</body>
<script>
$(function(){
    $.contextMenu({
        selector: '.dummyDiv', 
        trigger: 'none',
        items: {
            "edit": {name: "Edit", icon: "edit"},
            "cut": {name: "Cut", icon: "cut"},
            "copy": {name: "Copy", icon: "copy"},
            "paste": {name: "Paste", icon: "paste"},
            "delete": {name: "Delete", icon: "delete"},
            "sep1": "---------",
            "quit": {name: "Quit", icon: "quit"}
        }
    });

    setTimeout(function(){
        $('.dummyDiv').contextMenu();
    }, 1000);       
 });
</script>
  • 1
    Я думаю, это то, что я пытался выше ??? $ ('.context-menu-one') .click ();
  • 0
    глядя на ваше последнее изменение
Показать ещё 7 комментариев
0

Попробуйте запустить его:

$('.context-menu-one').trigger({
    type: 'mousedown',
    which: 1
});
  • 0
    Не сработало, в этом случае я думаю, что щелчок - это щелчок правой кнопкой мыши, сработает ли мышь для этого?
  • 0
    Я отредактировал свой ответ, чтобы имитировать щелчок правой кнопкой мыши по событию. Значение 1 должно работать с нажатой мышью.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню