如何使用 jQuery 默认预加载所有选项卡

2024-01-02

如果我有 4 个选项卡,其中前 2 个使用 ajax 加载,后 2 个是静态的,那么默认情况下如何预加载 2 个 ajax 选项卡?

目前,只有第一个选项卡会自动加载,第二个选项卡会在单击时加载。我希望它们都被加载,这样当我单击第二个时,内容就已经加载了。我尝试在第二个选项卡上调用加载事件,如下所示:

$(document).ready(function () {
    $("#main-tabs").tabs({
        cache: true
    });

    $("#main-tabs").tabs("load", 1);
});

这会加载第二个选项卡,但由于某种奇怪的原因,第一个选项卡根本不加载;即使我单击不同的选项卡并返回第一个选项卡,它也不会加载。

然后我尝试了这样的事情:

$(document).ready(function () {
    $("#main-tabs").tabs({
        cache: true
    });

    $("#main-tabs").tabs("load", 0);
    $("#main-tabs").tabs("load", 1);
});

结果相同,第二个选项卡已加载,第一个选项卡未加载。

如何自动加载所有这些(ajax 的)?


问题根源

两个事实:

  • 当 jQuery 加载一个选项卡时load方法,如果另一个 AJAX 加载请求正在进行,这将被中止(可能是因为如果您选择一个选项卡并且它通过 AJAX 加载,然后快速选择另一个要加载的选项卡,jQuery 假设您不想同时加载这两个选项卡 - 只是最后一个)。
  • 当您设置由 AJAX 加载第一个选项卡时,.tabs("load",0)默认情况下将调用以填充第一个选项卡。

结合这两个事实,您就会明白发生了什么。load首先调用以填充第一个选项卡,然后再次调用以填充第二个选项卡。第二个负载抵消了第一个负载。

可能的解决方案

由于您无法发出多个load同时在同一个选项卡菜单上,我们必须找到另一种方法。该解决方案使用load选项卡选项可按顺序加载每个选项卡。换句话说,当一个加载完成后,它开始加载下一个。当该任务完成后,它会加载下一个任务,依此类推。

//the indexes to be loaded.
//In your case it's only index 1 (index 0 is loaded automatically)
var indexesToLoad = [1];

var loadNextTab = function() {
    if (indexesToLoad.length == 0) return;
    var index = indexesToLoad.shift();
    $("#main-tabs").tabs("load",index);
};

$("#main-tabs").tabs({
    cache: true,
    load: loadNextTab
});

此方法可能的改进:

  • 不要指定要加载的索引,而是让它自己找出哪些选项卡是 AJAX 选项卡并加载它们
  • 使 loadNextTab 可以同时在多个选项卡式菜单上使用
  • 使其可与其他加载回调函数集成(如果这是一个词)

我怎么发现出了什么问题?

通过使用firebug http://getfirebug.com。它是 Firefox 的插件。 Firebug 在其控制台中显示所有 AJAX 请求,正如屏幕截图所示,弄清楚发生了什么并不难:) 我真的推荐它。 (大多数主要浏览器都有类似的工具 - 在 chrome 中按 ctrl+shift+j 或在 IE 中按 F12。)

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

如何使用 jQuery 默认预加载所有选项卡 的相关文章

  • 如何使用 JQuery 动态排序

    如果我有一个下拉列表和一个列表框 有没有办法使用 JQuery 根据下拉列表对列表框进行排序 举个例子会很有帮助 这会改变下拉菜单中的顺序 您必须根据自己的标准设置顺序
  • 如何在jquery中以相反的顺序迭代元素? [复制]

    这个问题在这里已经有答案了 我是jquery的新手 我想知道如何使用each 在jquery中以相反的顺序迭代表单元素 任何帮助 将不胜感激 尝试这个 input get reverse each function
  • 如何从图像输入中获取 xy 坐标?

    我有一个输入设置为图像类型
  • 在剑道组合框中动态添加项目

    如果你们中有人使用过 kendo ui 请告诉我如何在 kendo 组合框中动态添加新项目 我尝试在谷歌和其他地方搜索 我的结论是剑道中没有这样的功能 以供参考 JSBIN http jsbin com ebutaw 2 edit sour
  • jQuery 已弃用“.toggle()”。寻求替代方法

    Since toggle was 已弃用 http bugs jquery com ticket 11786从 jQuery 我正在寻找一个新的简单解决方案 它将使我能够创建一个 阅 读更多 按钮 该按钮可以向下滑动一个段落 同时将按钮文本
  • 回调月、周、日标题栏按钮点击?

    当用户单击日 周 月按钮时 我需要运行一些 Javascript 代码来重新加载日历 有没有类似的回调dayButtonClicked 或者其他的东西 BUG发生 当我第一次加载日历时 最初的视图看起来不错 我的最初加载日 一旦我加载另一个
  • jQuery UI:将可排序从手风琴内部拖动到外部

    我有两个相连的可排序列表 一个只是在页面上 另一个在手风琴内 我使用手风琴作为其他列表的容器 我的目标是用户可以打开手风琴并将项目从该列表中拉到页面上 它有效 除了占位符在离开手风琴时消失 我尝试过 helper clone 并增加 zIn
  • 未捕获的 ReferenceError: $ 未在 jQuery 中定义错误

    我有这个代码jQuery 文件名是 javascript js 我以前使用过 JavaScript document ready function readFile click function get test txt function
  • jQuery:计算数百个元素的点击次数

    这是我在SO 的第一个问题 基本上 我的页面上有大量元素 我想计算并显示用户单击每个元素的次数 但为此我需要为每个元素定义变量 难道就没有更简单的方法吗 对于一个元素 var counter 0 container on click fun
  • Bootstrap 表单助手未选择完整的国家/地区名称

    我添加了引导表单助手来列出国家及其州 最初 它根本没有选择国家名称 但我设法用 jQuery 检索国家 地区名称 但它没有显示完整名称 这是表单的完整代码 div class signup form div class container
  • jQuery 更改事件未在输入元素上触发

    首先 我检查了与我的问题类似的每个主题 不幸的是 我还没有找到答案 我尝试结合一些答案 但没有成功 注 刚开始学习jQuery 所以这是我的问题 我创建了一个带有四个文本输入和一个按钮的表单 每个输入内部都有一个 svg 图标和一个占位符文
  • 用于动态字符计数的 Jasmine 单元测试用例

    任何人都可以给我编写测试用例的例子来检查是否 jquery 和 jasmine 中调用 keyup 事件中的函数 我对 jquery 和 jasmine 相当陌生 所以对这些错误感到抱歉 当用户在输入字段中输入字符时 该程序显示剩余的字符数
  • jQuery TableSorter 插件初始化时出错:无法读取未定义的属性“0”

    我想用 jQuery Plugin TableSorter 对我的表格进行排序 所以我得到这张表 table class zebra striped thead tr th Date th th Annonce th th Support
  • jQuery $(ui.draggable).remove() 不适用于 IE

    我可以让 IE 删除对象 只要它不是当前的可拖动对象 这适用于 Chrome 和 Firefox 我做错了什么吗 ul li class dropme One li li class dropme Two li ul div div
  • jQuery Blur() 在 Chrome 上不起作用

    我在 MacOSX 上运行这个http jsfiddle net q84wv http jsfiddle net q84wv on Chrome最新版本 它不会工作 在 Firefox 上运行时它工作得很好 有什么线索吗 假设您想要aler
  • 使用 Javascript / Jquery 的本地存储(不使用 HTML5)

    我想在 javascript 或 jquery 中复制本地存储概念 类似于 HTML5 但不幸的是我不知道如何开始 任何人都可以建议如何使用 javascript 或 jquery 实现本地存储 不使用 HTML5 这是一个有点愚蠢的差事
  • 点击问题:动态生成的链接不触发点击功能

    下面是两个代码片段 由于某种原因什么也没有发生 但来自同一个 JS 文件的其他 jQuery 函数在带有 UL 的页面上执行得很好 这是在盯着我看吗 ul class paganation li 1 li li a href 2 a li
  • 如何清除隐藏上的引导模式

    如何在关闭 隐藏 关闭时清除引导模式 我有以下模态定义
  • FullCalendar 检查选择日是否有活动?

    我正在使用 Full Calendar js 插件 到目前为止一切顺利 但我想检查开始和结束之间的选择是否有事件 我只需要返回 true 或 false 基本上 如果日期选择中已经存在事件 我想阻止用户创建事件 var calendar c
  • 获取淘汰赛中被点击元素的索引

    获取无序列表中单击元素的索引的最佳方法是什么 让我举个例子 假设我有以下 HTML 代码 ul li p p li ul 现在我有以下 javascript 代码来获取索引 self itemClicked function data it

随机推荐

  • 使用 Podman 通信不同的 pod

    我正在使用 podman compose 部署多个 Pod 为此 每个 pod 在 podman compose yaml 文件中都有自己的定义 我以无根模式执行该文件 因此 Pod 中的所有容器共存于同一主机 IP 中 但是 我希望 Po
  • asp.net core中间件中Map和MapWhen分支的区别?

    当我们验证请求时 何时在 asp net core 中间件中使用 Map 和 MapWhen 分支 public void Configure IApplicationBuilder app IHostingEnvironment env
  • “.el”与 JavaScript/HTML/jQuery 有何关系?

    我在谷歌搜索中找不到太多东西 但我可能谷歌搜索了错误的术语 我试图从这里理解 el 中的 el 是什么 http joestelmach github com laconic http joestelmach github com laco
  • 如何使用 Mono.WebBrowser?

    我将此页读了两遍http www mono project com WebBrowser http www mono project com WebBrowser但我不知道如何使用它 没有程序集 我也无法打字using Mono WebBr
  • 默认 nginx client_max_body_size

    我一直收到 nginx 错误 413 Request Entity Too Large 我已经能够更新我的client max body size在我的 nginx conf 文件的服务器部分中将其大小更改为 20M 这已经解决了问题 但是
  • 如何为 postgresql 配置 HikariCP?

    我正在尝试在 postgresql 中使用 HikariCP 但在任何地方都找不到 postgresql 的配置 请给我指出带有 HikariCP 的 postgresql 的任何示例或任何相同的配置教程 我尝试像下面那样使用它 但它不起作
  • 创建docx word文档 web api .net core 2.0

    我正在Asp net core 2 0中开发一个Web API项目 我需要一个库或方法来创建 Word 文档 我搜索了一个尝试过的 NPOI 和 DocX 两者都没有想象中那么好 有人能给我推荐一个工具吗 乍一看 以下链接可以有所帮助 ht
  • 如何在 Go 中使用 RSA 密钥加密和解密纯文本?

    我正在尝试编写一个实用程序 使用 RSA 密钥对加密和解密纯文本文件 RSA 密钥是使用 ssh keygen 生成的 并像往常一样存储在 ssh 中 我无法理解如何使用 Go 语言 crypto 和 crypto rsa 包来做到这一点
  • MySQL 缓存和日期函数

    我曾经在性能博客中读到 最好使用 PHP 的日期函数在 MySQL 查询中设置日期 而不是使用像 curdate 这样的 mysql 日期函数 因为 mysql 可以缓存查询或结果或类似的东西 有人对此有任何见解吗 它有水分还是毫无根据 e
  • R-plotly-结合气泡和等值线图

    我想以情节方式将两种类型的地图组合在一张地图中 即气泡图和分区统计图 目标是通过将鼠标悬停在地图上来显示国家级别 分区统计图 以及城市级别 气泡 的人口规模 分区统计图的绘图示例代码如下 library plotly df lt read
  • 'Room' 类是抽象的;无法实例化

    我有一个抽象类Room它有子类Family and Standard 我创造了room new ArrayList
  • 2 Kubernetes pod 在不知道暴露地址的情况下进行通信

    我计划部署 2 个带有 NodePort 服务的 kubernetes pod 将它们暴露到网络中 现在我希望 pod 1 能够通过他的服务访问 pod 2 问题是我编写部署文件 但我不知道 pod 2 将从集群获取的 IP 地址 但我需要
  • WPF:使用虚拟键盘

    我创建了一个虚拟键盘用户控件 可以在应用程序中跨多个窗口使用 我想知道当按下某个键时如何将其输入到窗口中的文本框中 我正在寻找的是这样的 private void keyboardKey Click object sender Routed
  • Angular2 - 将文本框聚焦于组件加载

    我正在 Angular2 Beta 8 中开发一个组件 该组件有一个文本框和一个下拉列表 我想在组件加载或下拉列表更改事件后立即将焦点设置在文本框中 我如何在 Angular2 中实现这一点 以下是该组件的 Html div div
  • TypeError:使用 tf.map_fn 和 keras 功能模型时无法为

    当我尝试在 keras 功能模型的定义中使用 tf map fn 时 出现错误 TypeError Could not build a TypeSpec for
  • 如何使用 AngularJS 在过滤速度慢时显示某些内容

    在 Angular 中 我有一个表格和一个搜索框 用户可以在其中键入内容 Angular 将在数据中搜索并显示表格 问题是我有足够的数据 过滤可能会减慢 在这种情况下 我想显示一个微调器 类似于我的 html 的示例 Search
  • Delphi 同步滚动组件

    我正在尝试同步 VCL Forms 应用程序中两个 TDBGrid 组件的滚动 但在没有堆栈问题的情况下拦截每个网格组件的 WndProc 时遇到困难 我尝试在滚动事件下发送 WM VSCROLL 消息 但这仍然导致错误的操作 它需要用于单
  • 如何禁用 UIPickerView (Swift)?

    我想禁用 UIPickerView 但将其设置为 isEnabled false 不起作用 不 我不想在使用视图时禁用它 而是无法滚动视图 直到完成某个操作才能重新启用它 我在这里尝试的代码不起作用 它甚至可能不是快速代码 如何禁用 UIP
  • 尝试理解 Ember JS 的承诺

    我一直在尝试编写一个代码示例来理解承诺 但我似乎无法弄清楚如何处理回调并稍后获取 thenable 值 以下是我正在研究的两个相关 JSBin 示例 以冗长的风格编写 以模仿烘焙饼干 没有异步的 Ember JS http jsbin co
  • 如何使用 jQuery 默认预加载所有选项卡

    如果我有 4 个选项卡 其中前 2 个使用 ajax 加载 后 2 个是静态的 那么默认情况下如何预加载 2 个 ajax 选项卡 目前 只有第一个选项卡会自动加载 第二个选项卡会在单击时加载 我希望它们都被加载 这样当我单击第二个时 内容