我们最近将我们的jQuery升级到了1.9.0,但它打破了我们的诡异插件。它的实时功能现在会导致错误。
$('.tooltip,abbr').tipsy({ live: true }); TypeError: this[binder] is not a function
有没有修补或补丁呢?谷歌没有导致任何有用的东西。
更新:
感谢您的答案。我决定尝试自己解决问题,因为我找不到任何补丁。
检查后,错误似乎很容易追踪。可以轻松地修补迷人的插件来使用on功能,而不是不推荐使用的实时功能。在诡异的插件中,我更换了以下代码:
if (options.trigger != 'manual') { var binder = options.live ? 'live' : 'bind',eventIn = options.trigger == 'hover' ? 'mouseenter' : 'focus',eventOut = options.trigger == 'hover' ? 'mouseleave' : 'blur'; this[binder](eventIn,enter)[binder](eventOut,leave); }
有:
if (options.trigger != 'manual') { var eventIn = options.trigger == 'hover' ? 'mouseenter' : 'focus',eventOut = options.trigger == 'hover' ? 'mouseleave' : 'blur'; if (options.live) $(document).on(eventIn,this.selector,enter).on(eventOut,leave); else this.bind(eventIn,enter).bind(eventOut,leave); }
奇迹般有效。 原文链接:https://www.f2er.com/jquery/182421.html