2014-10-28 5 views
0

У меня есть HTML-страница, которая загружает файлы CSS и JS для двух плагинов. Мне нужно вызвать функцию plugin1 из файла plugin2 JS.Вызов плагина jQuery из другого плагина jQuery

Ниже приведена часть плагина (plugin2), в частности событие, которое должно запускать функцию из другого плагина (ближе к концу).

onOk  : function() { 
    var pre, element; 
    pre = element = this.element; 

    if (this.insertMode) { 
     if (shighlighter.getTag() !== 'pre') { 
      element = this.element.getChild(0); 
     } 
    } 
    else { 
     pre = element.getAscendant('pre', true); 
    } 

    this.commitContent(element); 

    shighlighter.setCls(pre.getAttribute("data-pbcklang") + " " + editor.settings.cls); 

    element.setAttribute('class', shighlighter.getCls()); 

    if (this.insertMode) { 
     editor.insertElement(pre); 

     /* START: HERE IS THE FUNCTION I NEED TO CALL FROM THE OTHER PLUGIN. */ 

     $('pre code').each(function(i, block) { 
      hljs.highlightBlock(block); 
     }); 

     /* END: HERE IS THE FUNCTION I NEED TO CALL FROM THE OTHER PLUGIN. */ 
    } 
} 

Вышеуказанное не работает, поэтому мне было интересно, как я могу это изменить.

Спасибо.

+0

Показать, как определяется 'hljs' - это может быть проблема области. Также другие переменные, такие как 'shighlighter' и' editor'. – Igor

+0

Я не уверен, что вы подразумеваете под определенным. Я не знаю, как «определить» его в файле другого плагина. –

+0

вы вызываете/используете 'shighlighter.setCls',' editor.settings', 'hljs.highlightBlock' - что такое' shighlighter', 'editor',' hljs'? – Igor

ответ

0

Необходимо загрузить плагины в правильном порядке. Глобальная переменная hljs должна быть определена при ее использовании, поэтому достаточно положить тег скрипта для plugin1 (hljs) перед тегом скрипта для plugin2.

+0

Я уже загружаю скрипт plugin1' перед' plugin2'. –

Смежные вопросы