Я пытаюсь получить событие щелчка, чтобы отключить руководство для плагина, который использует селектор.
подключаемый модуль.
$( 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();
} );
} );
Мое намерение здесь состоит в том, чтобы просто щелкнуть правой кнопкой мыши, чтобы меню выходило вручную не на основе события.
На основе документации, взятой из демонстрации документации. Следующий пример ждет загрузки документа и после задержки 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>
Попробуйте запустить его:
$('.context-menu-one').trigger({
type: 'mousedown',
which: 1
});