尝试在 jQuery show() 周围的事件之前和之后触发

2024-05-05

我正在尝试在某些第 3 方代码出现模式对话框后运行我们的 JavaScript 片段。我看见劫持 jQuery show 函数的一个非常巧妙的想法 https://stackoverflow.com/a/1225238/135968,但不幸的是它不起作用。我猜想这个想法曾经在 2009 年的旧版本 jQuery 上有效,但现在在最新版本上不起作用。这是一个带有实现和示例的 jsFiddle:

http://jsfiddle.net/mkmurray/drv5w/2/ http://jsfiddle.net/mkmurray/drv5w/2/

正如您通过运行示例所看到的,它将警告“beforeShow”事件,但不会警告“afterShow 事件”,并且通过一些调试,我可以看到它没有完全调用“newCallback”函数。

预先感谢您提供的任何帮助。


看起来我能够找到解决方案。它涉及到原始版本的一些错误因素:

  1. 自从我看到代码的原始编写以来,jQuery 添加了另一个名为easing。这真的搞乱了我委托给原来的人的方式showjQuery 中的方法通过调用_oldShow.apply(...).
  2. 解决这个问题后,我发现有时show方法调用一系列其他方法,有时会递归调用show再次。我需要一种方法来不让我的实现拦截这些递归调用;我发现如果有一个我可以信赖selector财产与否。

可以在这个 jsFiddle 找到一个有效的实现:

http://jsfiddle.net/mkmurray/drv5w/27/ http://jsfiddle.net/mkmurray/drv5w/27/

这个实现很大程度上依赖于 jQuery 不改变方法签名show方法虽然。所以你几乎必须决定是否要修改你的第 3 方 jQuery 插件而不是这样做。无论哪种方式,如果您想获取最新的第 3 方插件或最新的 jQuery,一些新的更改可能会破坏您的实现。所以这个解决方案并不一定比修改第三方插件更好或更差。

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

尝试在 jQuery show() 周围的事件之前和之后触发 的相关文章

随机推荐

  • NoneType 对象不可下标

    我正在 Learnstreet 上进行一个七段显示项目 所需方法之一获取从标记为 inputString 的文本框获得的输入 然后使用将输入字符串传递给给定方法text这是一个字符串 该方法的进一步描述如下 在这个方法中 我们从输入字符串中
  • 如何在 F# 中将对象转换为泛型类型列表

    在下面的代码片段中 我的目的是将 System Object 可能是 FSharpList 转换为它所持有的任何泛型类型的列表 match o with list lt gt gt addChildList o gt list lt gt
  • 为什么 Dart 中的原生包装函数与非常轻量级的“DEFINE NATIVE ENTRY”函数相比如此重量级?

    我不明白 为什么要这样保证 这是自定义本机函数的包装器dart runtime vm native entry cc 它适用于想要编写的 Dart 程序员native extensions void NativeEntry NativeCa
  • Android 在连接 Socket 时出现错误

    在阅读了一些express io文档并成功连接到之后 我尝试使用nodejs和express io编写简单的应用程序http chat socket io在命令行中运行下面的代码并打开后 我找到了使用 nodejs 和express io
  • 将区间映射到更小的区间的算法

    我尝试搜索 但由于问题的性质 我无法找到满意的内容 我的问题如下 我试图将 0 到 2000 范围内的数字 尽管理想情况下上限是可调的 映射到 10 到 100 范围内的更小的区间 上限将映射 2000 gt 100 和下限也是如此 除此之
  • WPF 图像控件源绑定

    我是 WPF 和 C 的新手 我尝试实现以下功能 但在多次尝试后失败了 谁能帮我吗 我有一个图像控件
  • Amazon EC2 - Apache 服务器重启问题

    当我运行这个命令时 sudo etc init d httpd restart 它给出以下错误 停止 httpd 失败 启动 httpd 98 地址已在使用中 make sock 无法绑定到地址 80 98 地址已在使用 make sock
  • MVC 4 使用 Bootstrap 编辑模态表单

    我正在使用 MVC 4 和实体框架来开发 Intranet Web 应用程序 我有一个可以通过编辑操作进行修改的人员列表 我想通过使用模态表单使我的应用程序更加动态 所以我尝试将我的编辑视图放入我的 Bootstrap 模式中 我有两个问题
  • 将 nHibernate 3.x 与 Jet 驱动程序结合使用 (Microsoft Access)

    我正在开发一个 nHibernate 项目 该项目使用 Access 数据库作为数据源 不幸的是 我在运行时遇到问题 因为我找不到支持 nHibernate 3 x 的 Jet 驱动程序 我已经从 trunk 下载了源代码并编译了它 但事实
  • JAGS 中的柯西先验

    我正在使用 rJAGS 构建多级贝叶斯模型 并且我想为我的几个参数指定柯西先验 有没有办法在 JAGS 中做到这一点 或者我需要切换到 STAN 吗 我的 JAGS 模型如下 我想更换dnorm柯西分布 但 JAGS 找不到标准R柯西分布
  • 按属性值选择 XML 节点

  • Haxe 摘要 - 使用 @:from 时可以隐式转换数组吗?

    我试图将一种类型的数组视为另一种 抽象 类型的数组 当我使用抽象的基础类型时 它工作得很好 但是当我尝试使用另一种类型 使用定义的 from关键字 我构建失败 如果我使用显式的 它会起作用cast 但我想知道 有什么办法可以解决这个问题 我
  • 以编程方式创建 UILabel

    我通过代码执行了以下操作 UILabel label UILabel alloc initWithFrame CGRectMake 40 70 300 50 label backgroundColor UIColor clearColor
  • 比较周期性数据的快速方法

    假设我有任意类型的数据集 A B C D 并且我想将其与另一个数据集进行比较 我希望 A B C D B C D A C D A B 和 D A B C 的比较成立 但是不适用于 A C B D 或任何其他未类似排序的集合 有什么快速方法可
  • 在 Drupal 8 中如何在保存节点之前操作值?

    我有一个编辑节点表单 当用户输入新值并单击提交来编辑节点时 我首先想取回旧节点 操作该值 然后保存 更新节点 以下是我的解决方案 但它不起作用 function custom module form node form alter form
  • C 中有数组大小/长度的快捷方式吗?

    有什么方法可以加快 C 中获取数组大小的速度吗 打字sizeof array sizeof int 每次都会变老 有没有 C 库有类似的东西 length或者有什么方法我可以定义sizeof array sizeof int 作为某种较短的
  • Visual Studio 模板 - 添加其他预先存在的项目

    我正在开发一个 Visual Studio 模板 其中生成的项目依赖于许多引用 这些引用恰好是源代码控制下的其他项目 问题是如何在我的 ProjectGroup 模板中进行设置 例如 如果我在 C Stuff MyUtilityProjec
  • Javascript .includes 函数无法与对象数组一起正常工作[重复]

    这个问题在这里已经有答案了 我有一个正在使用的对象数组 includes 功能 我正在使用数组中的对象搜索该数组 对象是相同的 但似乎没有匹配项 我已将问题复制到这把小提琴 https jsfiddle net 6dua0u0n 代码也在下
  • Sympy autowrap (cython):为 sympy.Max、sympy.Heaviside 定义“助手”

    我有一个 sympy Matrix 称为 J sym 我想自动包装它 最好使用 cython 后端 相应的符号存储在列表list args中 然而 我遇到的问题是显然不支持某些 sympy 函数 在我的例子中特别是 sympy Max 和
  • 尝试在 jQuery show() 周围的事件之前和之后触发

    我正在尝试在某些第 3 方代码出现模式对话框后运行我们的 JavaScript 片段 我看见劫持 jQuery show 函数的一个非常巧妙的想法 https stackoverflow com a 1225238 135968 但不幸的是