2013-07-15 87 views
3

我想添加內聯jQuery到Drupal中的文章。我使用下面的代碼:Drupal 7和內聯jquery

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

上面的代碼失敗,並在頁面上產生500錯誤。
任何人都可以給我洞察什麼正確的方式來格式化上面的代碼是。
我在爲Drupal編寫jQuery和Javascript時是全新的。

回答

-1

通常在drupal中使用drupal_add_js()添加js文件,而不是內聯代碼。

您的代碼根本就沒有添加,或者在$(document).ready()中沒有調用,因爲在同一個事件上已經執行了一些其他的jQuery文件(Drupal在覈心中使用了很多jQuery文件,並將其添加到所有頁面中)。

創建一個js文件使用drupal_add_js()你的問題應該得到解決

2

添加它您可以通過以下方式你內嵌的JavaScript/jQuery代碼添加到您的靜態內容...... 當你要創建靜態頁面(內容管理 - >創建內容 - >頁面)

  1. 選擇輸入格式爲PHP代碼
  2. 在頁面的主體,通過粘貼PHP代碼與內聯JS/jQuery代碼

例子:(這將在頁面的主體粘貼)

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

drupal_add_js(),如Drupal的API中解釋,可用於JavaScript文件添加到您的代碼或者添加內聯javascript/jQuery。雖然你可以創建一個js文件,但它只是爲了你的好處 - 保持你的jQuery在一個文件中,而不是混入你的模塊的代碼(這可能會更混亂)。

要測試JavaScript的工作,我會做類似的東西是什麼Ayyappan建議:

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

這可以被添加到任何網頁的模塊中,並應儘快在該網頁被打開彈出。如果這不起作用,可能會嘗試清除緩存。

就您實際想要運行的代碼而言,您似乎試圖在單擊提交按鈕(?)時出現警告框。提交按鈕通常是一個形式的一部分,爲了得到jQuery來在Drupal的形式工作,你必須給jQuery的使用直接連接到形式:

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

你將不得不做一些研究究竟如何將內聯JavaScript添加到表單。你可能只能使用drupal_add_js(),或者它可能是其他的東西。您可以使用drupal_add_js()以這種方式明確地將js文件附加到表單中。它看起來像這樣:

$form['#attached']['js'] = array(drupal_get_path('module', 'my_module') . '/my_module.js');