web-dev-qa-db-fra.com

Comment appeler jQuery dans joomla sur un script spécifique

J'essaie d'utiliser jQuery contextMenu au sein d'un site joomla 3. Le code JQuery de base pour le menu est:

 $(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: function(){
                return 'context-menu-icon context-menu-icon-quit';
            }}
        }
    });

Je charge jquery framework avec JHtml::_('jquery.framework'); J'ai remplacé $function Par jQuery(function(){.

Comment puis-je changer $ .contextMenu pour qu'il soit acceptable par Joomla? J'ai essayé beaucoup de changements mais j'obtiens $ .contextMenu n'est pas une fonction.

J'ai aussi essayé d'utiliser JHtml::_('jquery.framework',false); afin d'utiliser $ au lieu de (jQuery) mais toujours pas acceptable.

Si j'inclus la bibliothèque jquery à partir d'un cdn et que j'utilise $ au lieu de (jQuery), cela fonctionne bien, mais de cette façon, j'obtiens des conflits avec d'autres extensions utilisant jquery.

2
dip

Si vous voulez utiliser le signe $ - dans votre fonction jQuery, vous devez l’appeler comme ceci:

jQuery(function($) {
   $.contextMenu({ ...

(Notez le $ à l'intérieur de la fonction ())

$ est juste un raccourci souvent utilisé pour jQuery. Dans Joomla, le problème est qu’il entre souvent en conflit avec d’autres bibliothèques JavaScript, comme Mootools, par exemple.

Vous pouvez aussi l'appeler comme ça:

jQuery(function() {
   jQuery.contextMenu({ ...

Si vous obtenez toujours l'erreur, le plugin est probablement chargé avant la bibliothèque jQuery. Comment ajoutez-vous le plugin?

3
fruppel