Javascript 未捕获类型错误:未定义不是函数

Javascript 未捕获类型错误:未定义不是函数,javascript,jquery,asp.net-mvc-4,Javascript,Jquery,Asp.net Mvc 4,我将按照中的示例尝试并实现一个实时web聊天应用程序。我对jquery的javascript非常陌生,所以我想我应该复制这个例子,边做边学 这是我正在使用的代码: @{ ViewBag.Title = "OnlineUsers"; } <html> <head> <title>Online Users</title> <link rel="stylesheet" href="http://cdn.leafletjs

我将按照中的示例尝试并实现一个实时web聊天应用程序。我对jquery的javascript非常陌生,所以我想我应该复制这个例子,边做边学

这是我正在使用的代码:

@{
    ViewBag.Title = "OnlineUsers";
}


<html>
<head>
    <title>Online Users</title>
    <link rel="stylesheet" href="http://cdn.leafletjs.com/leaflet-0.4/leaflet.css" />
    <script src="http://cdn.leafletjs.com/leaflet-0.4/leaflet.js"></script>

</head>
<body>
    <div id="wrapper">
        <div id="upperPanel">
            <div>
                <ul id="messages" itemid="@HttpContext.Current.User.Identity.Name">

                </ul>
            </div>
            <div id="friends">

            </div>
        </div>
        <div id="bottomPanel">
            <textarea rows="2" cols="100" id="chatMessage"></textarea>
            <input id="chatSubmitMessage" type="submit" value="Send" style="margin-left: 10px;" /><br />  
        </div>
    </div>​​​​​​​​​​​​​

    <script type="text/javascript">
        $(function () {
            var pusher = new window.Pusher('0b7eeff567653e170094');
            var channel = pusher.subscribe('chat_channel');
            channel.bind('message_received', function (data) {
                $("#messages").
                append('<li>' + data.user + ' ' + data.message + ' ' + data.timestamp + '</li>');
            });

            $('#chatSubmitMessage').bind('click', function () {
                $.post("/", {
                    chatMessage: $('#chatMessage').val(),
                    username: $('#messages').attr('itemid')
                });
            });
        });
    </script>

    </div>    
</body>
</html>

我假设这个错误与未命名的函数有关,任何帮助都将不胜感激。

您不是在加载jquery,而是在尝试使用它。把这个加到你的头上

 <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>

您不是在加载jquery,而是在尝试使用它。把这个加到你的头上

 <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>


您是否包含推送器代码?通过打开web检查器并尝试查看window.Pusher是否实际上未定义来确保。如果它没有定义。如果这是你的问题,请告诉我。很难说问题中给出了什么。

您是否包含了推送代码?通过打开web检查器并尝试查看window.Pusher是否实际上未定义来确保。如果它没有定义。如果这是你的问题,请告诉我。很难判断问题中给出了什么。

尝试了这个,但仍然得到相同的错误。MVC4项目不自动包含jquery吗?Layout.cshtml文件包含@Scripts.Render(“~/bundles/jquery”,“~/bundles/jquerymobile”),这毕竟是主要问题,但是仅仅添加jquery并不能解决它,因为其他缺少的依赖项(正如Vinay所指出的)也会返回相同的错误。感谢您的帮助:)尝试了此操作,但仍然出现相同的错误。MVC4项目不自动包含jquery吗?Layout.cshtml文件包含@Scripts.Render(“~/bundles/jquery”,“~/bundles/jquerymobile”),这毕竟是主要问题,但是仅仅添加jquery并不能解决它,因为其他缺少的依赖项(正如Vinay所指出的)也会返回相同的错误。谢谢你的帮助:)每一篇文章都有不同具体情况的答案,我想一个训练有素的人可能比浏览1000篇文章更快地发现我的错误。而每一篇文章都有不同具体情况的答案,我认为有一个训练有素的人可能比浏览1000篇文章更快地发现我的错误。你帮我找到了问题,因为没有包括多个依赖项。我下载了示例解决方案,并注意到他已将它们包含在共享布局文件中,而不是发布的示例中+感谢你帮助我,但牧师博恩斯先回答了。谢谢你的帮助:)你帮我找到了问题,因为没有包括多个依赖项。我下载了示例解决方案,并注意到他已将它们包含在共享布局文件中,而不是发布的示例中+感谢你帮助我,但牧师博恩斯先回答了。谢谢你的帮助:)