构建一个不带 $ 美元符号的自定义 jQuery

2024-02-07

我有一个 javascript 库,可以在不同类型的网站上运行,例如 wordpress 或 magento。 js lib 动态加载 jQuery 并调用 noConflict 来分配给脚本元素的 onereadystatechange() 中的另一个变量命名空间。但是,如果该网站还在我的 js 库之前加载 Prototype js,则 Prototype 和 jQuery 之间可能会发生冲突。

在调用 onereadystatechange 回调之前,可能会解析页面并可能调用 Prototype 函数。如果该 Prototype 函数使用任何“$”,则会导致该函数失败,因为该美元符号“$”仍然是 jQuery,而不是 Prototype(在调用 jQuery.noConflict() 之前)。

我可以构建一个自定义 jQuery 来完全不使用“$”,这样就不需要因为上述原因再次加载 Prototype 了吗?

EDIT 1:

以下是我的 js 库 (mylib.js) 在网站上使用的过程,以及 jQuery 可能如何与该网站的 Prototype 发生冲突。

onepage.html 来自其他人的网站

<head>
  <script src="prototype.js" type="text/javascript"></script>
  <script src="mylib.js" type="text/javascript"></script>
</head>

mylib.js

1. If jQuery is not defined, create a script element with jQuery src and insert to header.
2. In the script element, attach event onreadystatechange.
  element.attachEvent('onreadystatechange', function () {
  if (elem.readyState == 'loaded' || elem.readyState == 'complete') {
      callback();
    }
  });
3. in callback(), I called noConflict().
   var callback = function() {
     return function() {
        if (window['jQuery'] && hasJQueryReqVersion()) {
           window.myJQ = jQuery.noConflict(true);
        }
     }
   }();

问题是在调用callback()之前,可能会调用Prototype,并且它会意外地使用已被jQuery覆盖的“$”。


您可以控制库的加载顺序。首先加载 jQuery 库(通过将该脚本节点放在您的<head>并立即致电$.noConflict()在允许加载其他脚本之前。

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

构建一个不带 $ 美元符号的自定义 jQuery 的相关文章

  • jQuery 将表单提交到新选项卡?

    我有一个表单中的操作链接 需要每分钟用令牌更新一次 当用户单击提交按钮时 我从 api 调用中获取新的 url 令牌 我正在使用这样的东西
  • 在相同位置使用 jQuery 将列表框项目移动并删除到另一个列表框

    我有 2 个多选框 如本链接所示 http jsfiddle net bdMAF 38 http jsfiddle net bdMAF 38 function button1 click function list1 gt option s
  • 如何根据上一张或下一张幻灯片按键更改 Nivo Slider 中的效果?

    我想根据按下的按钮更改 Nivo Slider 上的过渡效果 关于如何实现这一目标有什么想法吗 Update澄清一下 我指的是下一个或上一个按钮 而不是键盘上的按钮 我正在寻找的是 如果一个人按下下一个按钮 则会调用 slipToRight
  • 基于 ajax 的弹出窗口中的 Mathjax + CKEditor 4 + CKEditor

    我已经配置了 CKEditor 4 并且我的页面上有以下内容 我的页面中有一个 CKEditor 设置值的两个选项 这两个选项本身分别选项两个基于 ajax 的弹出窗口 这些基于 ajax 的弹出窗口包含 CKEditor 现在我有以下问题
  • 使用 JQuery 闪烁图像

    是否可以使用 JQuery 使图像闪烁 我需要闪烁具有特定类别的某些图像 它应该在 IE 和 Firefox 中都可以工作 像这样的事情 function blink time interval var timer window setIn
  • 使用客户端脚本处理 RadioButtonList

    我有一个 ASP RadioButtonList 我想在客户端处理它 该网页包含一个带有单选按钮组和关联的 GridView 的表单 当用户选择单选按钮之一时 我想隐藏或显示 GridView 上的行 这些行必须隐藏 而不是通过回发从数据集
  • Jackson (JSON) 当 Float 为 null 时抛出 JsonMappingException

    我正在使用 Spring 与 Jackson 和 jQuery 将表单作为对象传递 我的 pojo 包含可为 null 的浮点数 然而 当字段为空时 杰克逊会抛出异常 org codehaus jackson map JsonMapping
  • 表中偶数/奇数行的 jQuery 选择器

    第一个代码块中的代码是源代码 源码运行后 代码将被更改 参见第二个代码块 我希望标签的类别 即 偶数 和 奇数 仅显示在 table1 中 然而 目前嵌套表 即 table2 的每个标签也有 偶数 和 奇数 类别 谁能帮我吗 提前致谢 第一
  • 使用数据表和 jQuery Ui 对话框的“oCol 未定义”

    我有一个表格 用于搜索注册表 此表格显示信息jQuery Dialog 并且 在对话框内部 我正在使用Datatables 是的 在对话框内部我有一整张桌子 我使用 PHP 动态生成 TR 和 TD 然后 PHP 将字符串粘贴到 HTML
  • 使用 jQuery 更改 iFrame 的 HTML?

    有没有办法使用 jQuery 操作来自同一域的 iframe 的 HTML 谢谢您的帮助 您必须解析 iframe 内容 frameid contents find div html My html 更多这里 http api jquery
  • 我怎样才能知道哪个元素从js触发了事件?

    我有这样的事情 eventFire dblclick function EventHandler dblclickListener 我想要EventHandler监听双击事件 我想要EventHandler知道页面中的哪个元素触发此事件 我
  • Jquery $.each 选择器

    我想知道什么 each 在 jquery 中代表 它在选择什么 原型中有等效的吗 each 没有选择任何东西 它只是一个迭代集合的实用程序 当你这样做时 someSelector each function do something jQu
  • Mousemove视差效果移动div的位置

    我正在尝试创建轻微的视差效果 我不确定它是否真的构成视差 但这是一个类似的想法 其中有四层 当鼠标移动时 它们以略有不同的速率移动 我找到了一个很好的例子 它提供了与我想要的类似的东西 http jsfiddle net X7UwG 2 h
  • JW Player - 视频可以在 Chrome 中播放,不能在 Firefox 或 IE 中播放

    See 工作链接 http www 888behindthescenes com test 在主页上我有两个视频 intro video 和 video container 在 chrome 下我没有问题 但在 firefox 和 IE 中
  • 当容器有选择框时 jQuery mouseleave 触发问题

    我有两个容器 一个嵌套在另一个容器内 当我将鼠标悬停在父容器上时 我希望显示子容器 当我鼠标移出时 我希望子容器淡出 我遇到的问题是子容器有一个包含 选择框 的表单 当用户选择选择框时 会意外触发 mouseleave 事件 如何阻止选择框
  • JavaScript 将 NULL 转换为 0

    我正在使用 jQuery 来获取元素的高度 但如果该元素不存在 以下代码将返回 NULL height menu li active ul height returns integer or null 这是一种跨浏览器安全的方法 可以使用以
  • 如何使用 jQuery AJAX 和 JSON 通过 Bootbox 确认表单提交

    我正在使用一个网络应用程序工作Spring MVC 我试图在提交表单之前显示一个确认对话框Bootbox 但我收到 500 内部服务器错误 这是我的表格
  • jQuery:将 json 响应的编码设置为 utf8

    我收到了 json 格式的 jQuery 响应 逻辑工作正常 但我无法让他正确编码数据 如 我搜索并发现this https stackoverflow com questions 26620 how to set encoding in
  • 如何获取td表的实际宽度

    我在 html 中创建一个表 这个table宽度为 988 像素 tr宽度为 100 table width 表标签中存在 5 个td标记这个td标签宽度 20 当我使用 jQuery 处理这些标签时 td标签 在控制台中向我显示 198
  • jquery .slideToggle() 水平替代方案?

    SlideToggle 正是我想要的 只是我希望幻灯片是水平的 我现在有一个水平隐藏 显示和点击动画 但我想要切换选项 这样 当我单击活动链接时 它将播放反向动画并隐藏自身 最好的方法是什么 您可以使用animate方法 element a

随机推荐

  • 如何处理带有图像和文本视图的自定义列表视图中的图像视图的点击?

    我想知道我们如何处理带有图像和文本视图的自定义列表视图上的图像视图的点击 我什至使 Imageview 可点击 这是我的代码 自定义适配器 java public class CustomAdapter extends ArrayAdapt
  • 返回第一个表中的所有数据,如果存在则仅返回第二个表中的 1 个数据

    我正在使用MySql 我有 2 个表 一个是带有主键 propertyId 的名称和数据列表 表 2 包含具有主键 propertyImageId 的图像 每个 propertyId 可能有多个图像或根本没有图像 我需要获取属于agentI
  • SQL不是单组组函数

    当我运行以下 SQL 语句时 SELECT MAX SUM TIME FROM downloads GROUP BY SSN 它返回客户下载的最大总价值 但是如果我尝试通过将其添加到 select 语句来查找该最大值所属的社会安全号码 SE
  • C++ 使用 constexpr 和 lambda 表达式

    我正在看书C 17 完整指南 https rads stackoverflow com amzn click com 396730017X以及第 6 1 节中constexprlambda作者举了两个例子 auto squared1 aut
  • 检查 Swift 中是否存在 func

    我想在调用函数之前检查它是否存在 例如 if let touch AnyObject touches anyObject let location touch locationInView self touchMoved Int locat
  • Glassfish 作为 OSGi 容器

    我正在评估 OSGi 容器 主题是使用 Glassfish 来包含我的 OSGi 应用程序组件 我的问题是 Glassfish 对此有好处吗 有人有以这种方式使用它的经验吗 背景 该应用程序不是 Java EE 应用程序 而是 Spring
  • Bash 在脚本中退出 sudo

    我需要使用 sudo 执行安装脚本 但在脚本结束时 脚本需要退出 sudo 并以普通用户身份继续 Example sudo install sh 脚本以 root 身份运行并执行所需操作 su myscriptuser service my
  • 如何以编程方式获取我的设备的手机号码?

    我尝试过使用两种方法来检索我的电话号码 但这两种方法都不起作用 我用了 电话管理器 订阅管理器 我确实获得了网络名称 国家 地区 iso 和 IMEI 但每当我尝试返回号码时 它都不会返回任何内容 我还添加了这些所需的所有权限 我的清单如下
  • Selenium - 过时的元素引用:元素未附加到 C# 中的页面文档

    我正在使用 selenium 来获取网站表格中的数据进行分析 我必须扫描并获取大约 1000 行的表 我知道该页面有 Javascript 它会自动更新 DOM 但表的行太多 所以当我扫描代码时总是抛出异常 我尝试使用以下代码 Boolea
  • 在 Android 搜索视图中显示建议列表中的选择

    我有一个带有建议列表的搜索视图 如果用户从列表中选择一个项目 则会发送一个新意图 我可以应用我的过滤器 但搜索视图仍为空 如果我使用 setQuery 更新 onNewIntent 中的搜索视图 见下文 效果是所选项目显示在搜索视图中 但建
  • APNs 通过 macOS Sierra 推送通知

    我正在尝试使用连接到的简单 PHP 工具向我的手机发送推送通知ssl gateway push apple com 2195 但连接失败并出现以下错误 Warning stream socket client SSL operation f
  • 通过文件目标完美缓存

    阅读有关的文档后基于文件目标的输出缓存 https docs prefect io core concepts persistence html output caching based on a file target 我认为这个工作流程
  • iPhone SDK 合成 BOOL 数组

    当尝试合成如下所示的 bool 数组时 出现编译器错误 h import
  • getdata() 脚本仅在时间触发时超时

    我正在从另一个电子表格导入一个范围 并使用以下脚本将其粘贴到当前电子表格中 function getdata var values SpreadsheetApp openById XXXXXX getSheetByName SheetB g
  • 使用tinymce 进行绑定淘汰赛

    我正在尝试使用knockout 3 0 0 with tinymce 4 0 18 我想创造一些东西像这样 http jsfiddle net SalvadorDali jY3X2 1 很少有可编辑元素 此处为 3 个 但这些元素取自淘汰赛
  • 使用 ElementTree 读取 .xml 等电子表格

    我正在使用 ElementTree 读取 xml 文件 但有一个单元格无法读取其数据 我调整了我的文件以制作一个可重现的示例 如下所示 from xml etree import ElementTree import io xmlf
  • 如何删除 Django 模型中的 ImageField 图像

    我有一个Profile像这样的模型 class Profile models Model photo models ImageField upload to img users blank True 我希望我的用户能够删除他们的个人资料图片
  • 与所选 NSMenuItem 的背景完全匹配

    我正在为一个创建自定义视图NSMenuItem 为了在选择时绘制背景 我改编了几行自定义菜单 https developer apple com library mac samplecode CustomMenus Introduction
  • 每当打开/显示视图时运行控制器函数

    我正在构建一个使用 Angular ionic 的应用程序 该应用程序在底部使用经典的三按钮菜单 其中包含三个离子选项卡 当用户单击选项卡时 该模板将通过 ui router 打开 我有这样的状态 stateProvider state o
  • 构建一个不带 $ 美元符号的自定义 jQuery

    我有一个 javascript 库 可以在不同类型的网站上运行 例如 wordpress 或 magento js lib 动态加载 jQuery 并调用 noConflict 来分配给脚本元素的 onereadystatechange 中