2014-01-21 73 views
2

我已經建立使用Joomla 3阿賈克斯負載功能功能問題

在右下角的網站,有一個「聯繫」鏈接加載通過AJAX的接觸形式(使用jQuery load功能)

問題

我得到這個錯誤在控制檯:

Uncaught TypeError: Cannot call method 'load' of null 

我會很GR atefull如果有人可以看看,過去幾天它一直讓我瘋狂。

請注意,該網站使用History.js腳本進行ajax頁面導航。

回答

0

一:你兩次加載jquery 二:你必須替換jQuery。 '$.'

jQuery(document).ready(function($) 
{ 

}); 

function($) 
{ 

} 
+0

試過你的解決方案,它沉溺於它imidmaatly thx很多 – user3218711

0

首先,讓我只是說,你做這種聯繫表單的方式不是最好的方法。您不必通過位於模板文件夾中的單獨的PHP文件。它應該通過一個模塊來完成(Joomla的方式)。

在腳本中,你使用它調用腳本聯繫以下:

$('#contact').load('/templates/tmpl_yogadaviken/ajax/contact_form/contact.php'); 

我會建議使用JUri::root()方法做,但是這將需要PHP,因此它必須是移出當前的JavaScript文件。其時,在你的模板文件夾添加這在index.php讓剛剛測試:

$doc = JFactory::getDocument(); 
$doc->addScriptDeclaration(' 
    jQuery(document).ready(function(){ 
     jQuery(".contact_link, .item-108").click(function(){ 
     if(cont == 0){ 
      jQuery("#contact").load(' . JUri::root() . '"templates/tmpl_yogadaviken/ajax/contact_form/contact.php"); 
      cont = 1; 
     } 
     jQuery("#contact").fadeIn(1000); 
     }); 
    }); 
'); 

此外,在的Joomla 3.x中,以確保您只在noConflict模式一次,還加載了jQuery,我建議使用在你的模板index.php文件如下:

JHtml::_('jquery.framework'); 

擁有多個jQuery的庫可能會導致一些事情發生衝突。

什麼,你也可以做的是使用jQuery Easy插件,它有3個功能,將最有可能解決您的問題:

  • 地方的jQuery庫MooTools的要求完美兼容後,
  • 增加了noConflict()代碼一起jQuery庫呼叫,
  • 剔除了額外的jQuery和jQuery UI庫,包括noConflict()調用由其他模塊或插件添加,

希望對此有所幫助

+0

THX抽出時間來回答,我已經測試你的代碼(我改變了'「''之前簽署的模板僅僅指剛/ TMPL _...'),但現在我得到這個錯誤:'未捕獲的TypeError:對象#沒有方法'準備好''。其他問題,我應該把'JHtml :: _('jquery。框架');'在模板的頭部之後? – user3218711

+0

我已經更新了我的答案中的代碼。嘗試添加它,但不要替換或刪除任何東西,只需編碼和粘貼。至於'JHtml ::'代碼,你可以在你的index.php文件的任何地方添加這個代碼,只要它在''標籤內。如果這不起作用,那麼我建議一個插件,最有可能解決問題 – Lodder

+0

如果我粘貼你的代碼,我得到這個錯誤:'未捕獲的SyntaxError:意外的令牌:' – user3218711