2013-07-15 2 views
3

Я пытаюсь добавить встроенный jQuery в статью в Drupal. Я использую следующий код:Drupal 7 и inline JQuery

<?php 
// add inline javascript 
drupal_add_js(' 
$(document).ready(function() { 
    $("input[type='submit']").click(function(){ 
     alert("test"); 
    }); 
}); 
', 'inline'); 
?> 

Приведенный выше код не удается, и произвел 500 ошибку на этой странице.
Может ли кто-нибудь дать мне представление о том, какой правильный способ форматирования кода выше.
Я совершенно новый при написании jQuery и Javascript для Drupal.

ответ

-1

Обычно в drupal файл js добавляется с использованием drupal_add_js(), а не встроенного кода.

Ваш код просто не добавлен или его не вызывают в $(document).ready(), потому что в одном и том же событии выполняется другой файл jQuery (Drupal использует много файлов jQuery в ядре, которое добавляется ко всем страницам).

Создайте файл JS добавить его с помощью drupal_add_js() ваша проблема должна быть решена

2

Вы можете добавить свой встроенный JavaScript/JQuery код для вашего статического контента следующим образом ... Когда вы собираетесь создавать статические страницы (Content Управление-> Создать контент-> Page)

  1. Выберите формат ввода как PHP код
  2. в теле страницы, вставить PHP код с инлайн JS/JQuery кода с помощью drupal_add_js('Your JS code here', 'inline');

Пример: (это будет вставлен в тело страницы)

<?php echo 'test'; 
    drupal_add_js('alert("Hello!")', 'inline'); 
?> 
1

drupal_add_js(), как описано в API Drupal может быть использован для добавления файла JavaScript в код ИЛИ добавить встроенный javascript/jQuery. Хотя вы можете создать js-файл, вам будет только полезно: сохранить jQuery в одном файле вместо того, чтобы смешивать его с кодом вашего модуля (который может быть беспорядочным).

Чтобы проверить, что Javascript работает, я хотел бы сделать что-то подобное тому, что предложил айяппа:

drupal_add_js($(document).ready(function() { 
    alert("Hello!"); 
}); 

Это может быть добавлен к любой странице в модуле и должен появиться, как только открывается эта страница. Возможно, попробуйте очистить кеш, если это не сработает.

С точки зрения кода, который вы действительно хотите запустить, кажется, что вы пытаетесь создать окно предупреждения, когда вы нажимаете кнопку отправки (?). кнопки Сохранить, как правило, часть формы, и для того, чтобы получить JQuery для работы в Друпал форме вы должны прикрепить JQuery непосредственно к форме с помощью:

$form['#attached']['js'] = 

Вам придется сделать некоторые исследования, как именно для добавления встроенного javascript в форму. Вы можете просто использовать drupal_add_js(), иначе это может быть что-то другое. Вы можете привязать файл js к форме таким образом, используя drupal_add_js(). Это выглядит так:

$form['#attached']['js'] = array(drupal_get_path('module', 'my_module') . '/my_module.js'); 
Смежные вопросы