扩展 jQuery 核心的用处

2024-01-10

我发现了一种扩展核心 jQuery init 函数的方法(每当您使用 $() 或 jQuery() 函数时都会调用该函数)。使用普通代理模式不可能做到这一点,但以下代码可以使其工作:

var origInit = jQuery.fn.init;

jQuery.fn.init = function(selector, context, rootjQuery) {
    if (some condition) {
        //custom code here, possibly returning some other jQuery object than
        //what jQuery would normally return
    }
    return origInit.call(jQuery.fn, selector, context, rootjQuery);
}

我的问题是这可能有用,因为我意识到使用它来缓存选择器的最初意图是有问题的(因为它会影响其他插件的行为 - 我最终使用单独的函数进行缓存)。

所以我想我应该分享这个方法,并且我也很想听到关于它的潜在用途的其他想法。我想也许它可以用来支持某种类型的自定义选择器,尽管我不确定何时需要它,因为 jQuery 已经提供了很多选择器。


您会发现 jQuery 有一个围绕这个概念构建的方法。

jQuery.sub() http://api.jquery.com/jQuery.sub/

这允许您在本地扩展 jQuery,而不会“破坏”或“改变”全局 jQuery 对象。

从个人实验来看,我发现 jQuery 太复杂,无法改变init函数无需处理各种令人讨厌的边缘情况。围绕 jQuery 对象创建工厂装饰方法要好得多。

更改 jQuery 方法或构造函数有很多用途,从日志记录到注入自定义逻辑(例如将 GUID 写入 jQuery 对象)。

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

扩展 jQuery 核心的用处 的相关文章

  • 如何设置上一个/下一个箭头按钮的样式?

    GOAL 我一直在尝试修改slick css以适应我的网站所需的风格 我拿到slick css from here http kenwheeler github io slick Now 我想让箭头 左 右 更大 对于图标 我想使用没有的图
  • 将 css 宽度字符串转换为常规数字

    在尝试计算隐藏元素的宽度时 我发现 jquery width 对于该元素的宽度返回 0 我发现使用 jquery css width 将通过使用声明的样式宽度返回正确的宽度 即使该值与初始样式表不同 问题是 css width 方法返回一个
  • 使用 jquery 验证插件验证数组输入

    我有以下表格 我正在尝试使用 jquery 验证插件来验证输入 我已经尝试了一些代码 但它不起作用 当我单击提交按钮时 它只会进入表单的操作
  • 当 contenteditable 更改时触发事件

    当div值改变时 如何触发事件 div class changeable Click this div to edit it div 因此 当其内容发生变化时 我想创建警报和 或执行其他操作 changeable text change f
  • jquery中元素+ ID vs 只有ID?

    div some id将扫描整个 DOM 中的所有 div some id将直接从 DOM 获取 ID 那么哪个更快呢 div some id or some id See 优化选择器 https learn jquery com perf
  • jQueryUI:正确删除可拖动元素

    我正在开发一个可视化编辑器 它需要用户可以根据需要添加 删除和拖动元素 每个元素都是一个div使用 jQueryUI 实现可拖动 新元素被附加到父元素上div代表工作空间 每个元素内部都有一个用于将其删除的按钮 这一切都很好 我遇到的问题是
  • 获取月份名称而不是数字

    我正在使用 jQuery 日期选择器插件 我可以通过以下方式获取月份数 datepicker datepicker getDate getMonth 1 如何直接获取月份名称 即不使用switch case 如果您想要一个简单的解决方案 就
  • Jquery 文件上传 - $_FILES 数组为空

    使用 Jquery 文件上传 它正在 工作 并上传图像并显示拇指 但是 当我在处理程序中提交表单时 如果我转储 FILES 则那里什么也没有 我基本上使用的是 Basic Plus 示例 并将 autoUpload 设置为 false 我希
  • 如何给gRaphael图形添加jquery点击事件?

    我用 g Raphael 做了一个图表 function var r Raphael pieChart pie r piechart 320 240 100 55 20 13 32 5 1 2 10 r text 320 100 Inter
  • 在一组行中悬停突出显示效果

    我有一张相当大的桌子 由data属性看起来像这样 table tr td td tr tr td td tr tr td td tr tr td td tr tr td td tr tr td td tr table 我事先并不知道可能的组
  • Fancybox 链接未显示在灯箱中 - 我缺少什么?

    好吧 我认为我正确地实现了这一点 但我想我一定在某个地方犯了错误 这是我的代码 Jquery在这里 jQuery document ready function function cta nav hover tooltip show nul
  • 从 DOM 中删除一行后更新 jQuery Tablesorter 插件

    我目前有一些代码隐藏已删除的行 然后使用 remove 函数将其删除 然而 我很难让它保持 删除 状态 因为每次我刷新表排序分页器插件或我正在使用的过滤器插件插件时 删除的行会重新出现 因为它们当然被缓存了 目前的代码很简单 目前有小部件更
  • 如果没有 jQuery,我怎样才能重写这段代码呢?

    如何在不使用 jQuery 的情况下重写此代码 我需要在无法使用 jQuery 的移动应用程序中执行此操作 ajax type POST url REST session aspx method put data JSON stringif
  • 需要选定值的 jquery 自动完成字段?

    我需要一些 jquery 插件 因为他们在大多数航班预订网站上使用它 您必须从组合列表中选择出发 到达机场 我环顾四周 但找不到任何好的解决方案 我需要一个自动完成组合框 它将保持打开状态 直到用户从可能值列表中选择一个项目 并且它必须支持
  • jQuery 中如何查找具有特定 id 的 div 是否存在?

    我有一个附加一个函数 div 到单击时的元素 该函数获取单击元素的文本并将其分配给名为的变量name 然后将该变量用作 div id附加元素的 我需要看看是否 div id with name在我追加元素之前已经存在 但我不知道如何找到它
  • 将数据附加到 #div 时如何防止 javascript 中的重复输入

    PFB JavaScript 代码 问题是我收到重复条目的警报 如何避免重复数据 Var activityconunt 0 if activityconunt data iRoundId alert duplicate selectRoun
  • 是否可以为 Kendo DatePicker(日历)设置方向?

    我在表单底部有一个日历输入 当用户单击它时 日历会在输入创建滚动条的下方弹出 有什么方法可以设置 DatePicker 打开的方向吗 例如 左 右 上 这是我的代码 dpBirthDate kendoDatePicker Thanks 是和
  • 如何使用 jQuery Nestable 插件和 Codeigniter 创建子菜单?

    我在用着jQuery 可嵌套插件 with 代码点火器 3为网站创建 5 级菜单 这是一个很好的解决方案 用户可以通过拖放来更改菜单项的级别和位置 然而 我的下面的函数只能创建第一级菜单 当我更改为菜单项的子级 2 3 4 5 时 它对我不
  • 从 Jquery UI Sortable 中删除项目

    我试图找出从 JQuery UI 可排序列表中删除项目的正确方法 我创建了一个 JSfiddle 来说明我的问题 基本上 我有几个围绕 JQuery UI 可排序小部件的回调 并且我希望在从小部件中删除元素后立即执行这些回调 这样做的正确方
  • 哪个信号被传递到信号处理程序中死锁的进程

    我有一个来自调用信号处理程序后死锁的进程的核心转储 如何确定传送了哪个信号以及是谁发送的 GDB 为接收信号的线程生成的回溯如下 信号处理程序在第 15 帧中被调用 gdb bt 0 0x00007fa9c204654b in sys fu

随机推荐