jQueryUI工具提示与Twitter Bootstrap竞争
我已经能够得到一些工具提示终于与下面的代码工作:
<a href="#" rel="tooltip" title="Tool tip text here">Hover over me</a>
接着
<script> $('[rel=tooltip]').tooltip(); </script>
我遇到的问题是,它使用jQueryUI工具提示(没有箭头,大的丑陋的工具提示),而不是Bootstraps。
我需要做什么来使用Bootstrap Tooltips而不是jQueryUI?
jQuery UI和Bootstrap都使用tooltip
插件的名称。 使用$.widget.bridge
为jQuery UI版本创build一个不同的名称,并允许Bootstrap插件保持命名工具提示(尝试使用Bootstrap小部件上的noConflict
选项只会导致很多错误,因为它不能正常工作; 这个问题已经在这里报道 ):
// Resolve name collision between jQuery UI and Twitter Bootstrap $.widget.bridge('uitooltip', $.ui.tooltip);
所以使代码工作:
// Import jQuery UI first <script src="/js/jquery-ui.js"></script> // Resolve name collision between jQuery UI and Twitter Bootstrap $.widget.bridge('uitooltip', $.ui.tooltip); // Then import bootstrap <script src="js/bootstrap.js"></script>
好的复制粘贴代码,也处理button冲突:
<script type="application/javascript" src="/js/jquery.js"></script> <script type="application/javascript" src="/js/jquery-ui.js"></script> <script> /*** Handle jQuery plugin naming conflict between jQuery UI and Bootstrap ***/ $.widget.bridge('uibutton', $.ui.button); $.widget.bridge('uitooltip', $.ui.tooltip); </script> <script type="application/javascript" src="/js/bootstrap.js"></script>
一个简单的解决scheme是在jquery-ui.js之后加载bootrap.js,以便引导.tooltip方法优先。
这对我工作:
如果您需要使用JQuery-UI,但是您想使用引导程序的工具提示,只需从该网站获取JQuery-UI的定制版本即可。
只需取消选中“工具提示”选项,并下载它(这将是“jquery-ui-1.10.4.custom.js”)。
只需将其添加到您的项目中,而不是现在正在使用的版本,即可开始派对。 这将避免冲突。 它对我来说就像一个魅力!
这个解决scheme似乎对我很好。
// handle jQuery plugin naming conflict between jQuery UI and Bootstrap $.widget.bridge('uibutton', $.ui.button); $.widget.bridge('uitooltip', $.ui.tooltip);
如果您必须在bootstrap.js
之后加载jquery-ui.js
,请执行以下操作:
<script type="application/javascript" src="/js/jquery.js"></script> <script type="application/javascript" src="/js/bootstrap.js"></script> <script>var _tooltip = jQuery.fn.tooltip;</script> <script type="application/javascript" src="/js/jquery-ui.js"></script> <script>var jQuery.fn.tooltip = _tooltip;</script>
假设UI会在靴子初始化后调用
在UI初始化之前存储引导程序function
jQuery.fn.bstooltip = jQuery.fn.tooltip;
然后把它称为如下
$('.targetClass').bstooltip();
如何使用Bootstrappopup而不是? BS popovers不会创build相同的冲突,尽pipe它们需要相同的tooltip.js组件。 是的,他们更风格化,但不会导致我的JQuery UIbutton变得不可思议。
我只使用Jquery UI来定制自动完成/combobox(所以不能声称其他的JQ-UI控件都可以)并且上述方法都不能解决当调用BS工具提示时combobox的CSS问题变成“unstyled”。 切换到BS Popovers提供了基本相同的效果,没有冲突,不需要对我的脚本导入进行重新sorting,也不需要明确的桥接语句。
尝试使用jQuery.noConflict() ,看看是否可以帮助你。 它看起来像bootstrap和jQuery使用相同的名称空间,也许引导程序和jQuery工具提示被加载到相同的function,或先被加载。
您也可以查看哪个库首先被加载。 通常如果你在javascript中声明了两次相同的函数,那么第二个函数就是使用的函数。
第三,检查jQueryUI包( 在他们的网站上) ,看看你是否可以下载没有包含工具提示的版本(我检查过,这是完全可行的)。
有一个简单而好的解决scheme,只需重新安排你的引导和jQuery的UI文件链接,如下所示:
<script src="/js/jquery-ui.min.js" type="text/javascript"></script> <script src="/js/bootstrap.min.js" type="text/javascript"></script>
在加载boostrap js文件之前加载jQueryui。 这对我有用。
一个简单的方法是在jquery-ui.js之后加载bootstrap.js,以便引导.tooltip覆盖jQuery UI。 如果你使用像requirejs这样的模块加载器,那么你可以使引导程序依赖jquery-ui,例如:
requirejs.config({ baseUrl: 'js', waitSeconds: 30, shim: { 'bootstrap': { deps: [ 'jquery', 'jquery-ui' ] },...
- 如何在jQuery UI自动完成中实现“mustMatch”和“selectFirst”?
- 我可以同时使用Twitter Bootstrap和jQuery UI吗?
- JQuery UI – dateselect器,禁用特定的date
- jQuery UI可sorting,如何确定更新事件中的当前位置和新位置?
- 简单的ASP.NET MVC CRUD视图在JavaScript UI对话框中打开/closures
- 将jQuery UI Sortable的顺序保存到Backbone.js集合
- 在jQuery UI选项卡中设置默认选项卡
- 我怎样才能定位我的jQuery对话框中心?
- 使JQuery UI对话框自动增长或缩小以适应其内容