Ich versuche, multiple Menüs durch jquery Kontextmenu Plugin lackofcarmatext zu verwalten: auf dynamisch erstellte Elemente.Multiplizieren Kontextmenüs auf dynamisch erstellte Elemente
Hier habe ich 2 Schaltflächen dynamisch erstellt und Menüs für sie werden mit der linken Maustaste erstellt.
<dic id="cont"> </div>
<script>
$(document).ready(function(){
$('#cont').html('<button id="1">button #1</button> <button id="2">button #2</button>');
$('button').on('click', function(e){
var $target = $(e.target);
var id = '#'+$target.attr('id');
$(document).contextmenu({
delegate: id, // #1 or #2
menu: [{title:'Menu for'}, {title:id}]
});
alert('Created menu for button '+id);
// now trying to show menu on left mouse click
// as suggested by https://github.com/mar10/jquery-ui-contextmenu/wiki
$('button').on('click', function(event){
if (event.which === 1) { // left-click
// Pass click event to `open()`
$(document).contextmenu("open", event);
}
// just trigger event
$('button').triggerHandler('contextmenu') ;
// emulate mouse events
$('button').trigger('mousedown',{button:2}).trigger("mouseup");
// none works..
});
});
});
</script>
CodePen ist hier: https://codepen.io/zzmaster/pen/xrKvpm/
So zuerst, links Button # 1, klicken wir Menü für sie erstellen und dann direkt die gleiche Schaltfläche klicken wir das Menü sehen. Als nächstes klicken wir mit der linken Maustaste auf Button # 2, wir fügen das nächste Menü zu Button 2 hinzu und erwarten, es mit der rechten Maustaste zu sehen. Aber Rechtsklick auf Button 2 funktioniert nicht und wir können Menü für die zweite Schaltfläche (zweiter Menüpunkt Schaltfläche ID angezeigt) auf die erste Schaltfläche rechts klicken!
Nächste Mission - Ich möchte das Menü mit der linken Maustaste anzeigen, nicht richtig. Es gibt einen Code, der auf der Wiki-Seite des Plugins vorgeschlagen wird, aber es funktioniert nicht. Auch versuche ich Ereignisse nachzuahmen - ohne Erfolg.
ich total frustriert bin ...
Ansatz ist alles falsch. Initialisieren Sie nur einmal und verwenden Sie das 'beforeOpen'-Ereignis, um das Menü zu ändern. Lies api docs und sieh dir dieses Beispiel http://plnkr.co/edit/Bbcoqy?p=preview an. Beachten Sie auch 'replaceMenu (Menü)' Methode in den Dokumenten – charlietfl