【问题标题】:What's the best practice when modifying twitter bootstrap javascript for your project为您的项目修改 twitter bootstrap javascript 时的最佳实践是什么
【发布时间】:2014-04-23 14:12:27
【问题描述】:

在这种特殊情况下,一些弹出框功能需要适应我们的特殊需求。

更改本身是微不足道的,it's a modification to this function。

我只需要添加另一个展示位置,但现在我不确定如何处理。

一种方法是在我的存储库中的 bootstrap.js 文件中添加一行,它的工作原理是更新时遇到问题的严重缺点,我现在可能还记得,但在我之后的下一个可能会产生一个硬需要修复的错误。

我想到的另一种方法是扩展功能,但设置引导程序的方式可能并不容易。据我了解,由于引导函数前面有一个加号 (+function(){}),它们会立即执行,所以我不能妨碍它。

我已经尝试修改这个函数$.fn.tooltip.prototype.getCalculatedOffset,但是虽然它确实修改了它,但修改后的函数永远不会被调用,因为它只被调用一次。

这可能是可能的,但我认为这样做的复杂性超过了修复的琐碎程度(除非我错过了更明显的方法)。

另一个想法是分叉引导程序,但我不确定那会完成什么,最后我又遇到了同样的问题。

解决这个问题的最正常方法是什么?最佳做法是什么?

【问题讨论】:

  • 我会去修改原型...但是the modified one never gets called since it's only called once. 对我来说没有意义,因为您缺少一些代码参考和it(是the modified 还是其他一个?):)
  • @AndreasNiedermair 从 kapa 的回答来看你可能是对的。

标签: javascript jquery twitter-bootstrap twitter-bootstrap-3


【解决方案1】:

与其他答案类似,但使用弹出功能,只需要捕获正确的功能!

$.fn.popover.Constructor.prototype.getCalculatedOffse

http://jsfiddle.net/59Er7/3/

【讨论】:

    【解决方案2】:

    对Tooltip 的引用保存为$.fn.tooltip.Constructor in line 1472:

    $.fn.tooltip.Constructor = Tooltip
    

    修改$.fn.tooltip.Constructor.prototype.getCalculatedOffset(当然不是在原始文件中,而是在您的代码中)应该会影响原始Tooltip,即$.fn.tooltip中的"instantiated"。

    我不知道这是否是最佳做法,但应该可行。

    jsFiddle Demo

    【讨论】:

    • 嗯,您是否出于任何特定原因使用调用工具提示而不是弹出框,我有点困惑,如果我调用弹出框,这似乎不起作用。
    • 会不会是tooltip插件在popover实例化之前就被初始化了?
    • @Trufa 从未使用过 Bootstrap,所以只是试图给出一个通用的解决方案,可能忽略了一些东西:)。很高兴您得到答案。
    猜你喜欢
    • 1970-01-01
    • 2011-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-28
    • 1970-01-01
    • 2010-09-17
    • 2017-12-07
    相关资源
    最近更新 更多