Ajax加载函数函数问题

时间:2014-01-21 10:28:10

标签: jquery html ajax joomla

我使用Joomla 3建立了一个网站。

在右下角,有一个“联系”链接,通过ajax加载联系表单(使用jquery load函数)

问题

我在控制台中收到此错误:

Uncaught TypeError: Cannot call method 'load' of null 

如果有人能看一眼,我会非常感激,过去几天它一直让我疯狂。

请注意,该网站使用History.js脚本进行ajax页面导航。

2 个答案:

答案 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个功能,最有可能解决您的问题:

  • 在MooTools要求完美兼容性之后放置jQuery库,
  • 在jQuery库调用
  • 旁边添加了noConflict()代码
  • 删除额外的jQuery和jQuery UI库,包括由其他模块或插件添加的noConflict()调用,

希望这有帮助

答案 1 :(得分:0)

一:你两次加载jquery 二:你必须替换jQuery。 '$.'

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

});

function($)
{

}