未捕获的TypeError: undefined不是函数

本文关键字:undefined 函数 TypeError | 更新日期: 2023-09-27 18:17:24

我正在尝试与SignalR和JavaScript一起工作,我遇到了错误"Uncaught TypeError: Undefined",我不明白。下面是导致这个问题的代码:

HTML

<script type="text/javascript">
    $(function () {
        var chat = $.connection.chat;
        chat.Messenger = function (message) {
            $("#message").append("<li>" + message + "</li>");
        };
        $("#sendMessage").click(function () {
            var text = $("#txtMessage").val();
            chat.Send(text);
        });
        $.connection.hub.start();
    });
</script>
<div>
<fieldset>
    <legend>Send Message</legend>
    <div>
        <input type="text" id="txtMessage"  name="txtMessage"   />
        <input type="button" id="sendMessage" value="Send" />
    </div>
    <fieldset>
        <legend>Message</legend>
        <ul id="message">
        </ul>
    </fieldset>
</fieldset>
</div>

代码
public class Chat : Hub
{
    public void Send(string message)
    {
        Clients.All.broadcastMessage(message);
    }
}

未捕获的TypeError: undefined不是函数

使用jQuery代替$,这样你的脚本就会像

<script type="text/javascript">
    jQuery(function () {
        var chat = jQuery.connection.chat;
        chat.Messenger = function (message) {
            jQuery("#message").append("<li>" + message + "</li>");
        };
        jQuery("#sendMessage").click(function () {
            var text = jQuery("#txtMessage").val();
            chat.Send(text);
        });
        jQuery.connection.hub.start();
    });
</script>

尝试确保$在调用时被定义。输入以下代码段

if( typeof $ == "undefined" ){ $ = jQuery; }