$未定义

时间:2010-04-13 16:26:51

标签: jquery

我无法弄清楚为什么当我在$(文档)之前清楚地包含jQuery库时,它仍然没有识别jQuery语法.ready

<!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 id="Head1"><title>

</title></head>
    <body>

        <form name="form1" method="post" action="jQueryDialogTest.aspx" id="form1">
<div>
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwULLTE2MTY2ODcyMjlkZA==" />

</div>


<script src="content/js/jquery-1.3.2.min.js" type="text/javascript"></script>
<script src="content/js/popup.js" type="text/javascript"></script>
            <div id="testDialog" winWidth="400" winHeight="500" winResizable="true">
                Some test mark-up, should show inside the dialog
            </div>
            <div><input type="button" id="invokeDialog" value="Click Me!" /></div>
        </form>

        <script type="text/javascript">

            $(document).ready(function()
            {
                $("input.invokeDialog").click.showDialog("#testDialog");
            });

        </script>

    </body>
</html>

在popup.js中我有这样的例子:

function showDialog(divID)
{
    // Get reference to the div element
    var dialogDiv = $(divID);

    dialogDiv.dialog
    (
        {
            bgiframe: true,
            modal: true,
            autoOpen: false,
            show: 'blind'
        }
    )

    dialogDiv.dialog("open");
}

4 个答案:

答案 0 :(得分:9)

您确定它实际上正在加载javascript文件吗?像“Fiddler”这样的工具可以帮助您确定这一点。

此外,您的代码未正确终止,这可能会导致奇怪的错误。试试这个:

$(document).ready(function() 
            { 
                $("input.invokeDialog").click.showDialog("#testDialog"); 
            } 
);

答案 1 :(得分:3)

黑暗中的刺:你有一个jQuery文件的相对路径:

<script src="content/js/jquery-1.3.2.min.js" ...

所以,如果您的content目录位于您网站的根目录中:

http://mysite.com/content/

但您的网页位于子目录中:

http://mysite.com/test/mypage.html

那么相对路径将是:

http://mysite.com/test/content/js/jquery-1.3.2.min.js

可能不存在。你应该说:

<script src="/content/js/jquery-1.3.2.min.js" ...

(请注意前导斜杠)?

答案 2 :(得分:2)

该代码是逐字的吗?你在结束括号后错过了一个右括号。

不知道这是否会导致你的问题,等等。

可能看起来很明显,但要确保jQuery的路径是正确的。

答案 3 :(得分:1)

您可以通过直接调用jQuery并通过以下方式添加别名来解决$ not defined errors;

  
       jQuery(document).ready(function($)
       {
           $("input.invokeDialog").click.showDialog("#testDialog");
       });