jquery - 使用命名空间调用函数

标签 jquery

我定义了一个像这样的 JQfactory 插件

(function($, window, document) {
    $.jqfactory('my.tooltip', {

      /* My tooltip code */         

    }, false);
}(jQuery, window, document));

现在假设我在页面中也包含了 Bootstrap 框架,并且我只想调用我的 tooltip() 版本,而不是 bootstrap 版本。如何使用命名空间 $.my.tooltip 实现?

最佳答案

正如 Bootstrap 网站上所述:

http://getbootstrap.com/javascript/#js-noconflict

// return $.fn.tooltip to previously assigned value
var bootstrapTooltip = $.fn.tooltip.noConflict();

// give $().bootstrapBtn the Bootstrap functionality
$.fn.bootstrapTooltip = bootstrapTooltip;

您可以使用 $.bootstrapTooltip 来调用 Bootstrap 工具提示(如果您想使用它)。您将能够将 $.tooltip 用于其他用途。

jQuery noConflict 并不能解决这个问题,因为它只是分隔不同的 jQuery 版本。 tooltip 函数不是原始 jQuery 代码的一部分,因此使用 jQuery noConflict 没有意义,除非您想加载 2 个不同的 jQuery 版本并使用 2 个不同的 jQuery 对象“$”例如“$$”。这肯定会在以后引起很多问题,因为开发人员将拥有意大利面条式代码。

关于jquery - 使用命名空间调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26071602/

相关文章:

javascript - 检测在文本中右键单击了哪个词

javascript - 为什么 Jquery 只影响第一个 div 元素?

javascript - 克隆 JavaScript 对象。又是:(

javascript - 无法通过rest API从客户端ajax POST请求接收数据

javascript - 如何在不卡住浏览器的情况下使用 javascript 中的 setTimeOut 函数处理大循环?

JQuery悬停功能无法正常工作

jquery - 我如何使用 jQuery 选择器来影响同一类的不同 sibling ?

javascript - jqGrid 中 onCellSelect 函数的完全相反是什么?

jquery - Event.type 在 Mozilla Firefox 中不起作用

javascript - jquery-1.6.4.min.js 自动重定向到google主页