使用命名空间调用函数

时间:2014-09-27 05:27:47

标签: jquery

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

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

      /* My tooltip code */         

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

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

2 个答案:

答案 0 :(得分:1)

如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对象&# 34; $"和" $$"例如。这肯定会在以后引起很多问题,因为开发人员会有意大利面条代码。

答案 1 :(得分:0)

你可以像这样使用$.widget.bridge

$.widget.bridge( "my_tooltip", $.my.tooltip );
$('#myTooltip').my_tooltip({});

或者这样做

$.my.tooltip(null, $('#myTooltip2'));

查看更多详情here