Как вызвать jQuery в joomla по определенному сценарию

Я пытаюсь использовать jQuery contextMenu на сайте joomla 3. Основной код jquery для меню:

 $(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';
            }}
        }
    });

Я загружаю фреймворк jquery с помощью JHtml::_('jquery.framework'); Я заменил $function с помощью jQuery(function(){.

Как я могу изменить $ .contextMenu, чтобы он был приемлемым для Joomla? Я пробовал много изменений, но я получаю $ .contextMenu - это не функция.

Я также попытался использовать JHtml::_('jquery.framework',false);, чтобы использовать $ вместо (jQuery), но все же неприемлемый.

Если я включаю библиотеку jquery из cdn и использую $ вместо (jQuery), она работает нормально, но таким образом я получаю конфликты с другими расширениями, использующими jquery.

2 голоса | спросил dip 10 22015vEurope/Moscow11bEurope/MoscowTue, 10 Nov 2015 11:22:35 +0300 2015, 11:22:35

1 ответ


3

Если вы хотите использовать знак $ в вашей функции jQuery, вы должны вызвать его следующим образом:

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

(Обратите внимание на $ внутри функции ())

$ - это просто ярлык, который часто используется для jQuery. В Joomla у нас есть проблема, что она часто конфликтует с другими библиотеками JavaScript, например Mootools.

Вы также можете назвать это следующим образом:

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

Если вы все еще получаете ошибку, возможно, плагин загружается перед jQuery-библиотекой. Как добавить плагин?

ответил fruppel 10 22015vEurope/Moscow11bEurope/MoscowTue, 10 Nov 2015 13:08:15 +0300 2015, 13:08:15

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132