Javascript / Jquery 脚本因超时而终止

2024-03-31

作为一名 Python 爱好者,我正在尝试 JS 和 Jquery。我编写了这个小脚本来使用 Jquery 幻灯片折叠\展开 html 页面上的菜单栏。我相信这应该可以正常工作,但是它所做的只是将我的浏览器冻结大约 10 秒,然后在控制台中我得到“脚本因超时而终止”。任何人都可以指出我正确的方向吗?

$(document).ready(function(){   
    var Clicked = false; 
    while (true) {
    if (Clicked) {
        $("button").click(function(){
            $("#menu").slideDown();
            $("button").replaceWith("<button type=\"button\">&#8593;</button>");
            Clicked = false;  
        });
     } else {
         $("button").click(function(){
             $("#menu").slideUp();
             $("button").replaceWith("<button type=\"button\">&#8595;</button>");
             Clicked = true;  
         });
     }
    }
});

该问题是由于while()环形。在 JS 中,这是一个同步操作,它会阻塞所有其他线程(重要的是,包括 UI 渲染器),从而导致浏览器挂起。这就是为什么您会看到指示操作已终止的警报。

更好的方法是只使用一个事件处理程序来切换状态#menu以及文本中的button被点击的。尝试这个:

$(function() {
  $("button").click(function() {
    $("#menu").slideToggle();
    $(this).html(function(i, h) {
      return h === '↑' ? '↓' : '↑';
    });
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button type="button">&#8595;</button>
<div id="menu">
  Menu...
</div>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Javascript / Jquery 脚本因超时而终止 的相关文章

  • Google 文档 - 以编程方式将鼠标点击发送到大纲窗格中的项目

    在 Google 文档中 您可以打开大纲窗格并查看文档中的所有标题 您也可以单击标题 视图将滚动到标题 我的问题是如何使用 Chrome 扩展中的 JS 以编程方式模拟鼠标单击 以将视图滚动到所需的标题 我尝试了以下代码 但没有任何反应 u
  • 有什么方法可以在不重新加载的情况下更改标头 URL? [复制]

    这个问题在这里已经有答案了 可能的重复 修改URL而不重新加载页面 https stackoverflow com questions 824349 modify the url without reloading the page 使用新
  • Angular - Safari 无法正确显示 DOM

    我是 Angular 的新手 使用 Angular 4 我尝试通过在关联的组件类文件中设置属性来更新特定元素 但是 除非我尝试强制重新绘制网页 通过调整窗口大小等 否则页面不会更新 我打开检查器 看到 DOM 已更改 但显示与元素检查器中的
  • 动态检测屏幕高度和屏幕宽度,以精简图像的高度和宽度

    我以前可以display a div标签仅在portrait使用下面提到的代码corrl https stackoverflow com users 15388872 corrl in this https stackoverflow co
  • JQuery 可排序嵌套可排序 div

    这个问题与这个有关Nest jQuery UI 可排序 https stackoverflow com questions 19129476 nest jquery ui sortables 但我无法解决我的问题 问题是 我有一个包含项目的
  • jQuery - 拖动div css背景

    我希望能够在 div 内按住鼠标并移动它的背景 在谷歌上搜索了很多 没有找到我想要的 这是目标 显示的地图是要拖动的对象 http pontografico net pvt gamemap http pontografico net pvt
  • 如何使用javascript隐藏div

    我想使用 Javascript 隐藏一个 div 下面是我的div div class ui dialog titlebar ui widget header ui corner all ui helper clearfix span cl
  • 有一个带有复选框的 jsTree,如何禁用所有复选框?

    我有一个动态构建的 jsTree 它允许用户选择他选择的任何节点 现在我试图使这棵树只读 以便其他用户可以看到信息而不改变它 我找到的所有示例都是关于禁用特定节点 我的问题是 有没有办法将树上的所有复选框定义为只读 正在使用的代码 jQue
  • 从 url 角度加载模板并在 div 内编译

    由于我是 Angular JS 的新手 我想知道如何加载外部模板并将其与一些数据一起编译到目标中div 例如我有这个模板
  • 以编程方式触发 highchart 散点图上某个点的单击事件

    实际上 我有一个小要求 其中有一个带有点列表和下拉列表的散点图 当我从下拉列表中选择一个项目时 应触发其相应的数据点单击 当我在图表上选择一个数据点时 必须执行一些操作 并且下拉列表应根据选择进行更新 我们有什么办法可以做到这一点吗 我尝试
  • 我将 X Y Z 坐标转换为屏幕 X Y 坐标有什么问题吗?

    我正在制作 3D 空间中弹跳的球体的 HTML5 Canvas 演示 这非常简单 每个球都有 X Y 和 Z 坐标 然后 这些坐标将转换为我在此处阅读的屏幕 X 和 Y 坐标 http answers google com answers
  • 替换打字稿中字符串中字符的所有实例?

    我正在尝试用 x 字符替换电子邮件中的所有句号 例如 电子邮件受保护 cdn cgi l email protection 将变为 myxemail emailxcom 电子邮件设置为字符串 我的问题是它不只是替换句号 而是替换每个字符 所
  • 在部分渲染时执行 JavaScript

    我有一些 JavaScript 代码 我想在用户单击其文件夹之一后执行 它会触发 show 操作和 show js erb 从而呈 现部分内容 Show js erb 当用户单击其文件夹之一时触发 如下所示 body append 它成功注
  • 在 React JSX 中返回配对元素

    问题 在 React 中 您希望通过映射数组来创建 DOM 结构 但数组中的每个项目应返回 2 个元素 例如 import React from react import from lodash let Component React ex
  • 如何在 jQueryUI 工具提示中换行

    新版本的 jQueryUI 1 9 附带了本机工具提示小部件 经过测试 如果内容 标题属性的值 很短 它就可以正常工作 但如果内容很长 工具提示一旦显示就会与输入文本重叠 有a demo http jqueryui com tooltip
  • jQuery - 未捕获类型错误:对象 # 没有方法“parent”

    我的代码有问题 Chrome代码光谱仪说第21行有问题 问题如下 Uncaught TypeError Object
  • 在 Javascript 中创建数组

    我对 javascript 不太熟悉 并且在用 javascript 制作 2d 或者也许我可能需要 3d 数组时遇到了一些麻烦 我目前需要收集 2 条信息 一个 ID 和一个值 因此我创建了以下内容 var myArray var id
  • 右列固定的 Div 表

    我最近接手了一个非营利网站作为一个项目 我正在使用一个现有的网站 所以我必须使用很多已经编程的东西 所以我所要做的就是创建设计 I made a diagram of basically what I can t figure out ho
  • 将 javascript 变量作为参数传递给 @url.Action()

    是否可以将javascript变量作为参数传递给 url Action 因为据我所知可能存在服务器和客户端问题 我的要求是我必须根据过滤器下载文件 并进行ajax调用不适用于下载文件 所以我对 url Action 进行了编码 但无法实现这
  • 允许 iframe 跨域链接到目标父框架

    我有 2 个域 域 1 上的一个页面使用 iframe 加载域 2 中的内容 如何允许来自domain2 iframe 内 的链接在domain1 的完整父框架中打开 我一直在关注IE和w3c的新沙箱属性 http www w3 org T

随机推荐

  • 如何阻止 IntelliJ 在自动完成后放置分号?

    所以这让我很恼火 因为我使用制表符来留下括号等 当我使用自动完成并且在括号后面放置分号时 会发生这种情况 https streamable com i9as2 https streamable com i9as2 正如您在第一个语句中看到的
  • socket.io 的额外参数

    如何通过 socket io 中的连接发送额外参数 因此 当客户端连接时 它们会发送附加信息 服务器端将其接收为 io on connection function client param1 param2 param3 app code
  • 无法在 Open API UI 中显示自定义标头

    使用 Open API 3 时如何设置自定义标头 我正在使用 Spring Boot springdoc openapi ui 示例 在此示例中 我希望在请求中传递不同的标头 以下配置不显示选择客户标题的选项 我还需要改变什么 Bean p
  • 使用 Firebase pod 的 Xcode 12。词法或预处理器问题。 “使用 包含找不到 pb.h' 文件;使用“引号”代替”?

    我刚刚下载了 Xcode 12 beta 6 我已将 firebase 安装到项目中 但出现此错误 当我用建议更正它时 它会告诉我用原来的内容再次更正 所有 GoogleDataTransport 都会重复此错误 您可以将 Firebase
  • MySQL Group By 并水平显示

    假设我有下表 1 tblScore Date VendorID Score 12 09 01 12001 A 12 09 01 12001 A 12 09 01 12002 B 12 09 02 12003 C 12 09 02 12003
  • 如何修复 docker 容器内的 ctrl+c

    如果我连接到 docker 容器 gt docker exec it my container zsh 在里面我想杀死我开始的东西ctrl c我注意到它需要很长时间才能完成 我用谷歌搜索了一下 似乎ctrl c工作原理与您的预期有点不同 我
  • JavaScript React 项目中 Jest 堆内存使用率较高

    我在使用 jest 进行测试时记录了堆使用情况 因为我们的 jest 测试 60 多个测试用例和 250 个测试 在我们的 ci 中导致了 137 内存不足异常 管理部门正在询问我有关内存泄漏的问题 因为节点进程在计算机上运行时使用了大约
  • iOS开发中如何保存全局变量?

    我有一个带有多个控制器的 iOS 应用程序 每个控制器都有自己的 xib 文件 如何设置范围涵盖所有控制器的全局变量 我应该使用NSUserDefaults并每次都检索每个视图的数据 一般来说 您希望避免使用全局变量 如果您需要访问必须共享
  • std::launder 可用于将对象指针转换为其封闭数组指针吗?

    当前的标准草案 大概是 C 17 说 基本 化合物 4 http eel is c draft basic compound 4 注意 数组对象及其第一个元素不可进行指针互换 即使它们具有相同的地址 尾注 所以指向对象的指针不能reinte
  • 如何使用 Flutter 在 Firebase AUTH 中创建 2 个不同的用户组

    我的应用程序提供两种类型的用户 我需要划分 FirebaseAuth 因此一个用户无法访问另一个用户的用户组 反之亦然 我找不到有效的解决方案来做到这一点 有什么建议么 目前要在 FirebaseAuth 中创建用户 我使用以下方法 Rai
  • Error" ...非错误输出上的 OLE DB Source.Outputs[OLE DB Source Output].Columns[XXXXXXXX] 没有对应的输出

    我花了几个小时试图解决这个问题 对于给我带来问题的列 我在 sql server 中使用标量函数来获取名称 该功能是正确的并且工作正常 然后我使用一个存储过程与 ssis 一起使用 给我错误的列指出它在错误输出上没有相应的输出列 一切似乎都
  • ALV网格不刷新

    我的模块池程序中有两个屏幕 屏幕 A 和屏幕 B 屏幕 A 显示 ALV 网格并在工具栏上有 1 个按钮 屏幕 B 也显示 ALV 网格和工具栏上有 1 个按钮 当我按下屏幕 A 上的 显示订单 按钮时 我会被定向到屏幕 B 然后我在屏幕
  • 如何在 Git 中区分文件与特定版本?

    我不知道Git是否有修订的概念 我想将当前工作副本与旧版本 不一定是最后一次提交 进行比较 如果能在 Emacs 中完成那就太好了 我不知道如何在 Emacs 中执行此操作 但是 git diff rev1 rev2 将为整个存储库执行您想
  • ZF2 Zend\Db 使用 Mysql 表达式插入/更新(Zend\Db\Sql\Expression?)

    有没有办法通过 Zend Db 和 或 TableGateway insert update 语句在 ZF2 2 0 0beta4 的当前版本中包含像 NOW 这样的 MySQL 表达式 这是邮件列表上的相关帖子 但尚未得到答复 http
  • 如果计算机未连接到互联网,Liquibase 将失败

    当我尝试启动 Liquibase 使用 Karaf 时 出现以下错误 无法读取架构文档http www liquibase org xml ns dbchangelog dbchangelog 3 0 xml http www liquib
  • 我可以在 PhoneGap 中每天在指定时间安排事件/回电吗

    有什么方法 在 PhoneGap 中 我可以安排事件或回调在每天的指定时间发生 我想我正在寻找类似 Android AlarmManager 的东西 这样我就可以每天在特定时间触发一些通知 然后提示用户启动我的应用程序 你可以使用这个 ht
  • AWS使用Ubuntu 22.04启动新实例:映像的卷超出了实例允许的数量

    AWS 使用 Ubuntu 22 04 启动新实例 The selected AMI contains more instance store volumes than the instance allows Only the first
  • 抓取顺畅

    我做了一个简单的抓取演示页面 http jsfiddle net NV Nkf9n 它没有任何缓动 加速 我想做同样的缓动 加速库莱什信息网 http kulesh info Flash 网站 使用 JavaScript 我怎样才能做到这一
  • 在 iPhone 的媒体库中保存录制的视频时出现问题

    我正在尝试使用 UIImagePickerController 委托将录制的视频保存到库中 它适用于图片 但如果是视频 则不会保存 而且在尝试保存视频后 如果我打开 照片 应用程序 我会收到一条消息 请稍候 更新库 以及带有标签 的进度条
  • Javascript / Jquery 脚本因超时而终止

    作为一名 Python 爱好者 我正在尝试 JS 和 Jquery 我编写了这个小脚本来使用 Jquery 幻灯片折叠 展开 html 页面上的菜单栏 我相信这应该可以正常工作 但是它所做的只是将我的浏览器冻结大约 10 秒 然后在控制台中