setTimeout()和设置参数

2023-11-26

我有一些 jQuery 代码,如下所示:

$('.mainNav2 > li').mouseleave(function(){
    var someNum = Math.random();
    $(this).attr('id', someNum);
    var t = setTimeout("HideMenu(someNum)", 200);
    $('li.clicked').mouseenter(function() {
        clearTimeout(t);
    });
});

function HideMenu(id) {
    $('#'+id).removeClass('clicked');
}

其目的是在鼠标离开时隐藏大型菜单,但也通过使用 300 毫秒的 setTimeout 来考虑鼠标意外离开的情况。如果用户在 300 毫秒内将鼠标指针移回到 li 中,则菜单不会隐藏,因为调用了clearTimout(t)。

问题是当用户确实想要鼠标移开时,setTimeout 中的函数不会被调用。根据这个页面:http://www.w3schools.com/js/js_timing.asp我的语法是正确的,但如果我这样写,我只能从 setTimeout 调用 HideMenu 函数:

var t = setTimeout(HideMenu, 300);

为什么它不能按书面方式工作,我可以将变量作为参数传递到函数中?


虽然标记的正确答案是实现这一目标的一种方法......但我不认为这是正确的。

请参阅附件 JS Fiddle:http://jsfiddle.net/PWHw3/

我们在这里所做的基本上是:

setTimeout(function, timeout, param);

Example:

var test = function(a){
    var b = (a) ? a : "fail";
    alert(b);
};
setTimeout(test, 500, "works");

这对我有用,并且消除了传递两个函数的需要。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

setTimeout()和设置参数 的相关文章

随机推荐

  • 如何通过curl发布数组值?

    我喜欢测试一个 API 后端 其设计如下例所示 http localhost 3000 api v1 shops 1 json JSON 响应 id 1 name Supermarket products fruit eggs 这是对应的模
  • 为什么在 JavaScript 中使用 getter 和 setter?

    我知道 JavaScript 中的 getter 和 setter 是如何工作的 我不明白的是 当我们可以使用普通函数得到相同的结果时 为什么我们需要它们 考虑以下代码 var person firstName Jimmy lastName
  • 如何在 django 中集成 Foundation 5

    我想开始在 django 项目中使用 Foundation 5 我的疑问是如何设置 Foundation 项目的文件夹 Foundation 现在使用 Bower 来处理 js 依赖项 我认为将 Foundation 5 设置到 djang
  • 如何在使用较少内存的情况下在单列中存储多个值?

    我有一张桌子users其中 1 列存储用户的 角色 我们可以分配多重角色给特定用户 然后我想将角色 ID 存储在 角色 列中 但是如何才能以易于使用的方式将多个值存储到单个列中以节省内存呢 例如 使用逗号分隔字段进行存储并不容易并且会占用内
  • 这段嵌套 for 循环反复将计数器加倍的代码的复杂性是多少?

    在书里编程面试曝光它说下面的程序的复杂度是 O N 但我不明白这是怎么可能的 有人可以解释这是为什么吗 int var 2 for int i 0 i lt N i for int j i 1 j lt N j 2 var var 你需要一
  • PIL 解码器 jpeg 在 ubuntu x64 上不可用,

    我知道这个问题看起来像是重复的 但我遵循了许多有关如何正确安装 PIL 的在线说明 但没有一个起作用 我已经尝试了一切 Python 图像库失败并显示消息 解码器 JPEG 不可用 PIL没有成功 当我运行 sudo pip install
  • Keras模型训练内存泄漏

    我是 Keras Tensorflow Python 的新手 我正在尝试构建一个供个人使用 未来学习的模型 我刚刚开始使用 python 并想出了这段代码 在视频和教程的帮助下 我的问题是 我的 Python 内存使用量在每个时期甚至在构建
  • 基于 CSV 的 Spark DataFrame 查询是否比基于 Parquet 的 Spark DataFrame 查询更快?

    我必须使用 Spark 从 HDFS 加载 CSV 文件到DataFrame 我想知道由 CSV 文件支持的 DataFrame 与由 parquet 文件支持的 DataFrame 是否有 性能 改进 查询速度 通常 我将如下所示的 CS
  • 使用 Google 进行 WPF 应用程序身份验证

    我发现了许多不同的 OAuth 解决方案以及一些库或纯请求 https github com googlesamples oauth apps for windows 然而 没有一个解决方案看起来像我真正需要的 目前 我的应用程序使用自己的
  • Durandal 2.0 - 用于嵌套菜单的子路由器?

    我正在构建一个应用程序 并希望显示一个 2 层菜单 并且两层始终可用 杜兰达尔2 0介绍了他们的新路由器 它支持 子路由器 可以更轻松地进行深度链接 我的问题 我可以永久加载我的 子 导航路线 并在父级不活动时呈现子菜单 还是 子路由器 设
  • 无空格黑白文本的正则表达式

    请告诉我如何检查正则表达式文本之间没有空格 如果您的意思是 检查字符串中是否有空格的正则表达式是什么 则以下模式将起作用 S 这将找到仅包含非空格 空格 换行符 制表符等 的任何字符串
  • 查找 List 中出现次数最多的数字

    有没有一种快速又好的使用 linq 的方法 怎么样 var most list GroupBy i gt i OrderByDescending grp gt grp Count Select grp gt grp Key First 或者
  • SliverAppBar(Flutter)中的最小高度?

    是否可以在 SliverAppBar 折叠时设置最小高度 如果是 我该怎么做 工作是在 SliverAppBar 中添加一个底部小部件 底部 首选尺寸 首选尺寸 尺寸 20 0 20 0 孩子 文本 这个问题的答案既是肯定的 也是否定的 如
  • 如何从MySQL中的select中删除?

    此代码不适用于 MySQL 5 0 如何重写它以使其工作 DELETE FROM posts where id SELECT id FROM posts GROUP BY id HAVING COUNT id gt 1 我想删除没有唯一 I
  • 嘲笑单例类

    我最近读到 创建一个类单例使得无法模拟该类的对象 这使得测试其客户端变得困难 我无法立即理解根本原因 有人可以解释一下是什么使得无法模拟单例类吗 另外 与创建类单例相关的还有其他问题吗 当然 我可以写类似的东西不要使用单例 它们是邪恶的 使
  • 一项工作中的错误会通过 mclapply 污染其他工作

    When mclapply X FUN 遇到某些值错误X 错误会传播到其他一些 但不是全部 值X require parallel test lt function x if x 3 stop else x mclapply 1 3 tes
  • 在 StringComparison 和 StringComparer 之间转换的优雅方式?

    一些 NET 方法使用字符串比较作为参数 有些使用字符串比较器 通常以以下形式比较器 差异是显而易见的 有没有一些优雅的方式如何获得字符串比较 from 字符串比较器或相反亦然 我总是可以编写使用的简单方法Case声明 但也许 NET 中已
  • React 组件中出现意外的标记“=”[重复]

    这个问题在这里已经有答案了 我可能缺少装载机吗 我认为我们应该能够在组件体中使用这些 ES6 函数 以避免必须执行 bind this syntax 反应文档 ERROR in client admin side components Fo
  • 用于可视化数学方程的库(如方程编辑器)[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我正在寻找一个 C 库 它将为我提供方程编辑器功能 我不是在寻找数学库来评估数学表达式 有什么建议么 我建议使用我的 WPF Math 分支 我已经
  • setTimeout()和设置参数

    我有一些 jQuery 代码 如下所示 mainNav2 gt li mouseleave function var someNum Math random this attr id someNum var t setTimeout Hid