2013-03-18 4 views
19

最近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); 
} 

作品ほろ酔いプラグインでは、私は次のコードを置き換えます。 :)

+0

「jquery plugin conflict」とここで検索 – Amir

+0

グレートポスト!どこから 'this.selector'を取得しますか? –

+0

@RichPeck 'this.selector'は、基礎となるjQueryオブジェクトのプロパティです。 – crush

答えて

9

live:trueを使用しているため、removed in jquery 1.9jquery.liveを使用しているため、jquery移行プラグインを組み込む必要があります。

下位互換性のため、を作成しました。これはdownloaded hereになり、削除されたメソッドやユーティリティのサポートを追加するための移行プラグインが含まれています。

私はこの問題は、このプラグインは、まだ仕事にあなたが使用live方法をできるように.live()を使用し、それが推奨されていませんし、.on()に置き換えられているということです

if (options.trigger != 'manual') { 
    var eventIn = options.trigger == 'hover' ? 'mouseenter' : 'focus', 
     eventOut = options.trigger == 'hover' ? 'mouseleave' : 'blur'; 
    if(options.live){ 
     $(this.context).on(eventIn, this.selector, enter).on(eventOut, this.selector, leave); 
    } else { 
     this.on(eventIn, enter).on(eventOut, leave); 
    } 
} 
+0

私はこのプロジェクトでjQueryの移行プラグインを使用しないことを好みます。推奨されない機能は使用しない予定です。 – Dysprosium

+0

あなたはあなたが問題があると思うことができないなら 'tipsy'プラグインを変更することができます –

+0

私は修正で私の質問を更新しました。 – Dysprosium

0

のようなものをやっているでしょう。

更新されたバージョンのプラグインを検索するか、自分で置き換えようとする必要があります。

関連する問題