回调函数触发得太早

2023-11-25

我在 jQuery 中有这个简单的函数:

function detailspage(page) {

  if (page != checkcurrent) {

    checkcurrent = page;

    $('div#details').children("div").slideUp("slow", function() {

        $('div#details').children("div"+page).slideDown("slow");

    });

  };

};

我已经放了三个<div>在另一个里面<div> called <div id="details">,默认情况下它们都是向上滑动并看不见的。我现在希望在单击每个按钮时使它们向下滑动。当然是一个<div>打开的那个必须先向上滑动并移出视线,然后再将新的滑下。这就是为什么我尝试了上面这个简单的回调函数。

(The page变量包含其中之一的 iddiv的,就像#info or #cast_crew.)

但它不起作用:您可以通过单击页面底部左侧的三个按钮(名为“演员和工作人员”、“信息”和“画廊”)来查看该错误.

除了似乎不会造成任何延迟的回调函数之外,这一切都可以正常工作。回调没有任何效果。我只是希望在当前框的向上滑动完成时开始新框的向下滑动。

怎么了?为什么我的回调不起作用?

谢谢。


我会看一下 jquery 中的 Promise 函数,以确保所有元素都已完成动画:http://api.jquery.com/promise/

对于你的例子:

function detailspage(page) {
    if (page != checkcurrent) {
        // so we only have to search the dom once
        var details = $('div#details');
        checkcurrent = page;
        details.children("div").slideUp("slow").promise().done(
            function() {
                $('div' + page).slideDown("slow");
            });
    };
};

工作示例:http://jsfiddle.net/cm3pv/6/

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

回调函数触发得太早 的相关文章

  • Jquery可排序“更改”事件元素位置

    有没有办法让助手的当前位置被拖到新位置上 sortable sortable start function event ui var currPos1 ui item index change function event ui var c
  • 在我的 div 标签中 有很多行非常长的文本 并且 div 元素当前是可滚动的 我想做的是找到特定字符串的第一次出现并自动滚动到包含该字符串的行 没有换行符或任何类型的字符串分隔符可以用来轻松近似滚动位置 我想我可以做这样的事情 var m
  • jQuery 和 AngularJS:将事件绑定到更改的 DOM

    在 AngularJS 的 DOM 中 我在 ng repeat 指令中使用 ng include 它加载 HTML 一切正常 不管怎样 我遇到的一个问题是 我使用 JQuery 最新版本 在 DOM 中的元素上绑定一些鼠标悬停和鼠标单击事
  • JSON字符串转JS对象

    我正在使用 JS 对象通过 Google 可视化创建图表 我正在尝试设计数据源 首先 我在客户端创建了一个 JS 对象 var JSONObject cols id date label Date type date id soldpenc
  • Javascript 当我们在 Chrome 中选择“停留在页面上”时如何调用函数

    请在 Chrome 浏览器中检查我的代码 如果您点击刷新 系统会提示您 2 个选项 离开此页面并 保持此页上 当我点击2 停留在此页面按钮它必须激活我的自定义功能显示消息 任何人都可以为我提供解决方案吗
  • 如何使用 datatables.js 应用条件格式?

    我有一个使用 datatables js 的 html 表 但无法找到如何应用条件格式的清晰示例 当第 4 列中的单元格的值 0 并且第 5 列中的值为 0 时 如何更改该单元格的文本颜色
  • 这段 jquery 代码可以写得更短吗? (初学者)

    这是我第一次在 stackoverflow 上提问 所以如果我做错了什么请原谅我 我也是 jquery 的新手 但通过阅读和教程 我设法创建了一个工作示例 下面的代码是我创建的 这意味着我有三个带有可拖动需求的列表和三个可以删除需求的占位符
  • 是否可以全局文本对齐表列而不在每行中指定类?

    想知道提高效率的最佳方法是什么 也许使用 jQuery 我可以接受不兼容 ie7 的解决方案 如果需要的话 即使缺乏对 ie8 的支持也可以 table th td class cal center td td left td td cla
  • jQuery 不断 ping 以获得 Ajax 响应

    如何使用 jQuery 不断运行 PHP 脚本并每秒获取响应 并将鼠标上的少量数据发送到同一脚本 我真的需要添加一些随机扩展才能让这样一个简单的计时器工作吗 迭代是人类的 递归是神圣的 L 彼得 多伊奇 http www devtopics
  • 显示对象内容 - JS/jQuery

    With this data events 返回 object Object 我需要看看里面到底发生了什么 我找到了这个 var Finder each this data events function i n Finder Name i
  • 如何使用 jquery 生成并附加随机字符串

    一般性 我想使用 jQuery 或 javascript 将随机字符串附加到元素的属性 规格 我需要引用 CDN 上的 CSS 文件 不幸的是 每次更新该 CSS 文件时 CDN 都会更改该文件的 URL 所以我不能简单地引用静态 URL
  • 如何在图文中突出显示单击的点?

    我正在使用选定的形状在图表上绘制更大的菱形形状 当用户单击一个点时 我在另一个 div 中显示数据 但我想突出显示单击的点 换句话说 我想 切换 点后面的数据 并且单击的点需要显示它们是否包含在数据集中 我相信我在某处见过这个 但我找不到它
  • 如何使tinyMCE编辑器在首次初始化后保留在我的jQgrid textarea formit表单中?

    我有一个 jqgrid 我试图在文本区域中使用tinyMCE 在我的数据库中发送 存储 html 并重新加载到我的网格中 我有一个带有tinyMCE的自定义列作为文本区域 但是在我打开editform一次并在下次打开时关闭它之后 tinym
  • Comet,使用 jquery 教程进行长轮询 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我希望通过使用 ajax 和 jquery 将 comet 长轮询功能添加到我的网站 因为我不熟悉 j
  • 添加之前检查班级是否已分配

    在 jQuery 中 是否建议在添加该类之前检查该类是否已分配给元素 它会产生任何影响吗 例如
  • 使用 javascript 根据索引合并多个数组

    我需要将两个数组合并为一个数组 我有代码 但它没有按预期工作 它将它们一个接一个地合并 但我需要互锁这些值 div div
  • 获取列表框中选定值的列表

    已经有一个问题得到了大量的投票 要求使用 jQuery 从下拉列表中获取选定的值here https stackoverflow com questions 1643227 get selected text from drop down
  • firebase 返回 onSnapshot 承诺

    我正在使用 firebase firestore 并且正在寻找一种返回快照承诺的方法 onlineUsers i want to return onSnapshot return this status database ref where
  • 垂直滚动,与 div/元素/锚点对齐/对齐

    我发现了一些可爱的网站 http www mini jp event campaign big point http www mini jp event campaign big point http www twenty8twelve c
  • 获取鼠标在滚动条上的位置

    当我向下滚动或向上滚动时如何获取鼠标位置 我试过这个 document mousemove function event captureMousePosition event scroll function event xMousePos

随机推荐