jquery API Ref を読みました。mouseenter と mouseleave は jQuery オブジェクトを返します。しかし、実際にはブール値を返します。したがって、コードが次のように、jquery 1.9.0 のホバーは実際には機能しません。
return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );
何かご意見は?ありがとう。
なぜこれが起こるのかを見つけました。フレームワークの 1 つは on() 関数をオーバーライドしていました。
そのようなイベント ハンドラを設定することはできません。次のように試してみてください。
return this.mouseenter( fnOver ).mouseleave( fnOut() || fnOver() );
あなたが提供した例は次のようなものです:
alert( true || false );
alert( false || true );
true
どちらの例でも、ブール値の真であるため、出力はどこになりますか。
fnOut
ただし、その構造にとfnOver
関数の両方のロジックが含まれる独自のハンドラーを作成してみることができます。