【问题标题】:jQuery TypeError: example("input#autocomplete").autocomplete is not a functionjQuery TypeError: example("input#autocomplete").autocomplete 不是一个函数
【发布时间】:2012-10-01 15:36:28
【问题描述】:

我已经尝试了很多来消除此错误,但未能成功。当我在 localhost 上运行此脚本时,它工作正常,但不适用于 Joomla 框架工作。 代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<?php $viewFields=array('c++', 'java', 'php', 'coldfusion', 'javascript', 'asp', 'ruby'); ?>
  <link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
  <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>

  <script>
  var example=jQuery.noConflict();
  var arrayFromPHP = <?php echo json_encode($viewFields) ?>;
  example(document).ready(function() {
   example("input#autocomplete").autocomplete({
    source: arrayFromPHP
});
  });
  </script>
</head>
<body>
<center>
<p><img src="<?php echo JURI::base(); ?>images/search_1.png" border="0" alt="" />
<img src="<?php echo JURI::base(); ?>images/business_2.png" border="0" alt="" />
<img src="<?php echo JURI::base(); ?>images/review_3.png" border="0" alt="" />
</p>
</center>
<input id="autocomplete" />
</body>
</html>

它给了我这个错误:-

--

[08:30:24.870] Use of getAttributeNode() is deprecated. Use getAttribute() instead. @ http://50.116.97.120/~amarhost/storage/media/system/js/mootools-core.js:343
[08:30:27.853] TypeError: example("input#autocomplete").autocomplete is not a function @ http://50.116.97.120/~amarhost/storage/index.php/component/storage/?action=war&Itemid=105:210

【问题讨论】:

  • 看起来像文件引用错误。检查脚本是否首先加载到控制台部分
  • 您尝试连接的框架属于哪个版本的 Joomla?
  • 您的代码在删除 php 后运行良好:jsfiddle.net/SyjZB

标签: php javascript jquery jquery-ui joomla


【解决方案1】:

也许 noconflict 会清除添加到 jQuery 的所有内容。尝试在加载 jQuery 之后放置 noconflict

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
<script>var example=jQuery.noConflict();</script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>
<script>
  var arrayFromPHP = <?php echo json_encode($viewFields) ?>;
  example(document).ready(function() {
     example("input#autocomplete").autocomplete({
        source: arrayFromPHP
     });
  });
</script>

【讨论】:

    【解决方案2】:

    我想补充一点,可能包含多个 jquery 文件。也许来自其他包含的 php 文件。删除此夹杂物并仅保留在一个地方。最好的方法是将此 js 文件包含在一些 php 文件中,然后 使用include_once('jquery_include.php'); 包含在所需的文件中。

    这可能会解决您的问题。我有同样的问题。这解决了我的问题。

    类似的东西。

    jquery_include.php

        <script src="scripts/jquery.js" type="text/javascript"></script>
    

    然后将此 php 文件包含在所需的 php 文件中。

        include_once('jquery_include.php');
    

    希望对您有所帮助。

    【讨论】:

      猜你喜欢
      • 2012-06-13
      • 2017-11-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-30
      • 2018-06-12
      • 1970-01-01
      相关资源
      最近更新 更多