最近jQueryを1.9.0にアップグレードしましたが、ヒントプラグインが壊れました。そのlive
機能でエラーが発生するようになりました。tipsy liveはjQuery 1.9.0で動作しません
$('.tooltip, abbr').tipsy({
live: true
});
TypeError: this[binder] is not a function
修正またはパッチはありますか?グーグルでは何も役に立たなかった。
UPDATE:回答を
感謝。私はパッチを見つけることができなかったので、問題を自分で修正しようと決めました。
検査の結果、エラーは本当に簡単にトレースできたようでした。ちょっとしたプラグインは、非推奨のlive
機能の代わりに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, this.selector, leave);
else
this.bind(eventIn, enter).bind(eventOut, leave);
}
作品ほろ酔いプラグインでは、私は次のコードを置き換えます。 :)
「jquery plugin conflict」とここで検索 – Amir
グレートポスト!どこから 'this.selector'を取得しますか? –
@RichPeck 'this.selector'は、基礎となるjQueryオブジェクトのプロパティです。 – crush