Как вызвать контекстное меню при нажатии левой кнопки мыши?

Я пытаюсь использовать контекстное меню для нажатия левой кнопки меню, но это не работает:

<input type="button" id="selector"  value="click" />

JQuery:

$('#selector').on('click',function(){
 $(this).triggerHandler('contextmenu')   
});

Как мне реализовать?

Убедитесь, что это не работает fiddle

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


person Navin Rauniyar    schedule 29.07.2014    source источник
comment
stackoverflow.com/questions/6250447/trigger-right-click   -  person Mohit Kumar    schedule 29.07.2014
comment
не работает скрипка jsfiddle.net/Q5dAL   -  person Navin Rauniyar    schedule 29.07.2014
comment
medialize.github.io/jQuery-contextMenu/demo/ - я не могу заставить его работать с помощью triggerHandler   -  person mplungjan    schedule 29.07.2014
comment
Использовали ли вы какой-либо обработчик событий для щелчка правой кнопкой мыши?   -  person Satpal    schedule 29.07.2014
comment
нет, я просто хочу вызвать щелчок правой кнопкой мыши (контекстное меню) при щелчке левой кнопкой мыши.   -  person Navin Rauniyar    schedule 29.07.2014
comment
Тогда, что вы ожидаете при щелчке правой кнопкой мыши? триггерХэндлер работает. jsfiddle.net/GGp64/1   -  person Satpal    schedule 29.07.2014
comment
@Satpal, когда вы используете правый щелчок, вы увидите контекстные меню, и я хочу показать контекстное меню по умолчанию при щелчке левой кнопкой мыши.   -  person Navin Rauniyar    schedule 29.07.2014


Ответы (4)


Если вы используете плагин contextmenu, вы можете просто использовать триггер: 'left' для нажатия левой кнопки.

$(function(){
    $.contextMenu({
        selector: '.context-menu-one', 
        trigger: 'left',
        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"}
        }
    });
});

Подробную информацию о плагине и документацию можно найти по ссылке нажмите здесь

person ashish.negi    schedule 29.07.2014

демонстрация jsFiddle
Вам не нужно запускать событие, contextMenu может отображаться вручную.

$( function( windowLoadE ) {
    $( "#selector" ).on( "click", function( clickE ) {
        $( this ).contextMenu( { x: clickE.offsetX, y: clickE.offsetY } );
    } );
    $.contextMenu( {
        selector: "#selector", 
        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" }
        }
    } );
} );

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

person ostapische    schedule 29.07.2014
comment
@RahulSonwanshiI только что установил версию jQuery 2.1.3 - person ostapische; 21.08.2020

JavaScript не может открыть контекстное меню браузера по умолчанию.

Однако вы можете поймать событие contextmenu и вызвать событие contextmenu простым щелчком мыши:

$('#selector').on('click', function () {
    $(this).triggerHandler('contextmenu');
}).on('contextmenu', function (e) {
    alert('foo');
});
person Ionică Bizău    schedule 29.07.2014
comment
но контекстное меню не открывается - person Parshuram Kalvikatte; 20.12.2016

person    schedule
comment
Вы не можете открыть контекстное меню браузера по умолчанию при щелчке левой кнопкой мыши, вы должны либо создать свое собственное, либо просто добавить какой-нибудь простой список :) - person Kuldeep Modi; 29.07.2014