Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 读取“时出现类型错误”$(……)“敬酒”;_Javascript_Jquery_Bootstrap 4_Django Channels - Fatal编程技术网

Javascript 读取“时出现类型错误”$(……)“敬酒”;

Javascript 读取“时出现类型错误”$(……)“敬酒”;,javascript,jquery,bootstrap-4,django-channels,Javascript,Jquery,Bootstrap 4,Django Channels,我正在用Django频道和websocket编写一个web应用程序,我想在websocket连接打开时动态创建引导toasts()。问题是出现了一个错误“UncaughtTypeError:$(…)。toast不是函数”。所以问题是如何阅读$('.toast').toast('show')Socket.onopen中的行(我不是很喜欢jQuery)。如果你有什么想法,我会很感激的 以下是js文件的一部分: var Socket = new ReconnectingWebSocket(ws_pa

我正在用Django频道和websocket编写一个web应用程序,我想在websocket连接打开时动态创建引导toasts()。问题是出现了一个错误“UncaughtTypeError:$(…)。toast不是函数”。所以问题是如何阅读
$('.toast').toast('show')
Socket.onopen中的行(我不是很喜欢jQuery)。如果你有什么想法,我会很感激的

以下是js文件的一部分:

 var Socket = new ReconnectingWebSocket(ws_path)
    Socket.onopen = function (e) {
      newToast();
      $('.toast').toast('show');
     };

    function newToast(data) {
        // create Bootstrap toast element
     };
在html文件的头部,加载引导和jQuery:

<head>
   <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
   <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
   <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
   <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
</head>


PS:我已经尝试用jQuery替换美元符号。相同错误:未捕获类型错误:jQuery(

我也面临同样的问题。。。我能找到的唯一解决方案是使用谷歌的CDN

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>



听起来像是
$
被分配了jQuery以外的内容,或者当时没有加载引导JS库。请尝试
console.log($)
,看看它能给您带来什么。@Yassine您的
$
输出看起来与jQuery的别名一样正确。您的
bootstrap.js
正在加载吗?我已经很久没有使用jQuery了,但这看起来像是jQuery方法的一个例子。如果您尝试
console.log($('.toast'))
console.log($('.toast').toast('show'))
,会怎么样。如果元素存在,第一个将返回
length:1
。如果Boostrap js未加载,第二个应该会给您一个错误。您可以对该
.toast
div执行其他操作吗?可能类似于:
$('.toast').css('border','3px纯红')如果这也不起作用,您的脚本可能在DOM准备就绪之前启动。我再次更新了答案。过来看。