1

TypeError: $("").html("This dialog will show every time!").dialog is not a function

这是我得到的错误。该页面是在索引页面的 div 中使用 load() 加载的。我已经在索引页面(我希望保持这种方式)、加载的页面以及两者中包含了必要的 jquery 内容,并且它仍然这样做。我不确定到底发生了什么。我知道使用 load() 页面而不是页面本身更加困难,但即使转到页面 home.php,它仍然会这样说。下面是加载页面的链接,如果要查看索引只需将地址中的home.php 取出即可。

正在加载的页面

这是我正在使用的功能:

<script type="text/javascript" src="js/jquery.js"></script>
    <script type="text/javascript" src="js/jquery.ui.core.js"></script>
    <script type="text/javascript" src="js/jquery.ui.draggable.js"></script>
    <script type="text/javascript" src="js/jquery.ui.mouse.js"></script>
    <script type="text/javascript" src="js/jquery.ui.position.js"></script>
    <script type="text/javascript" src="js/jquery.ui.resizable.js"></script>
    <script type="text/javascript" src="js/jquery.ui.widget.js"></script>

    <script type="text/javascript">
    function readMore(id,title,cat,desc,post,auth) {
        //alert(id +","+ title +","+ cat +","+ desc +","+ post +","+ auth);
        var $dialog = $('<div></div>').html('This dialog will show every time!').dialog({autoOpen: false,title: 'Basic Dialog'});
        $dialog.dialog('open');
        $dialog.title = title;
        $dialog.html(desc);
    }
    </script>

就像现在一样,对话框的所有包含都在加载页面上,而不是在索引页面上,但就像我说的那样,我已经尝试了其中一个或两个,但无济于事。警报也可以正常工作,并且可以正确传递所有内容,并且在我想要的时候被调用。jquery 包含的所有路径都是正确的。

如果由于某种原因它有助于缩小范围,我也会在页面加载时遇到错误:TypeError: $.widget is not a function [Break On This Error]

_uiHash: function(event) {

jquery...able.js(第 504 行)

TypeError: $.widget 不是一个函数 [Break On This Error]

_mouseCapture: function(event) { return true; }

jquery...ouse.js(第 162 行)

TypeError: $.widget 不是一个函数 [Break On This Error]

ui: function() {
4

2 回答 2

3

您还需要:

  • jquery.ui.button.js
  • jquery.ui.dialog.js

正如上面 Musa 所说,将鼠标放在可拖动之前,这很重要。

概括:

  1. jquery.ui.core.js
  2. jquery.ui.widget.js
  3. jquery.ui.mouse.js
  4. jquery.ui.position.js
  5. jquery.ui.draggable.js
  6. jquery.ui.resizable.js
  7. jquery.ui.button.js
  8. jquery.ui.dialog.js

但我建议不要加载所有单个文件,而是从 CDN 加载完整的 UI。

 <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>
于 2012-07-30T00:45:39.407 回答
2

jquery.ui.mousejquery.ui.draggable并且jquery.ui.resizable需要在之后,jquery.ui.widget因为他们调用.widget(),小部件也使用位置,所以把它放在前面。

<script type="text/javascript" src="js/jquery.ui.position.js"></script>
<script type="text/javascript" src="js/jquery.ui.widget.js"></script>
<script type="text/javascript" src="js/jquery.ui.mouse.js"></script>
<script type="text/javascript" src="js/jquery.ui.draggable.js"></script>
<script type="text/javascript" src="js/jquery.ui.resizable.js"></script>
于 2012-07-30T00:13:36.883 回答