我使用Joomla 3建立了一个网站。
在右下角,有一个“联系”链接,通过ajax加载联系表单(使用jquery load
函数)
问题
我在控制台中收到此错误:
Uncaught TypeError: Cannot call method 'load' of null
如果有人能看一眼,我会非常感激,过去几天它一直让我疯狂。
请注意,该网站使用History.js
脚本进行ajax页面导航。
答案 0 :(得分: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上,为了确保你只加载jQuery一次并且还在noConflict模式下,我建议你在你的模板index.php文件中使用以下内容:
JHtml::_('jquery.framework');
拥有多个jQuery库可能会导致某些事情发生冲突。
您还可以使用jQuery Easy插件,它有3个功能,最有可能解决您的问题:
希望这有帮助
答案 1 :(得分:0)
一:你两次加载jquery
二:你必须替换jQuery
。 '$.
'
jQuery(document).ready(function($)
{
});
或
function($)
{
}