jQueryのdatepicker内の関数にバインドするタグがいくつかあります。しかし、jQueryは、別の関数を親(.ui-datepicker-inline
)divのmouseover
とmouseout
イベントに自動的にバインドします。jQuery/javascriptで子要素のバインド関数を保持する方法
場合によってはこの機能をオーバーライドする必要がありますが、他のイベントが発生した場合は、デフォルトの機能に戻ります。私はバインドしようとしましたmouseover
親div(hasDatepicker
)とこれはうまくいきました。しかし、親のバインドを解除すると、その子の古いバインド機能も機能しなくなります。どうしてこれなの?それを避ける方法はありますか?子どもがそれを守っているのであれば、私は気にしません。親の束縛がそれを後にしている限り。私はまた、親をバインド解除するときに子機能を失いたくない。
私はjQuery UIコードからわかる限り、元のバインド(.ui-datepicker-inline
)を持つ要素であるjQuery要素datePicker
を持っています。
// This binds my function, occurring after datePicker's bound function,
// and works fine.
datePicker.parent().bind('mouseover', hoverWeek) // hoverWeek is a function(event)
/* ... */
// This unbind's datePicker as well as datePicker.parent()
datePicker.parent().unbind('mouseover');
バインドされた機能を保存し、必要なときに戻すことはできますか?私はしなければならないと思ってはいけませんが、私がしたら、どうしたらいいのでしょうか?関数をバインドするには、datePicker.bind('mouseover')
と言うことができますか?いくつかの問題がありました
[更新]:主に私はいくつかの矛盾のコードを持っていたが、bubbling effectを持ついくつかの問題もありました。下記に記載されたソリューションは、両方の良いです、そして将来の参照のために、ここで働く別の解決策は以下のとおりです。http://jsfiddle.net/redEvo/7QpDx/
'hoverWeek()'何をしますか?それは 'mouseover'を妨害することができますか?あなたのように、私はフィドルを作った、それはうまく動作します! – andyb
あなたが上に乗っている日を強調表示するのではなく、[this](http://www.kelvinluck.com/assets/jquery/datePicker/v2/demo/datePickerSelectWeek.html)と同様に、私はそれを使うことができるほど近くではない)。私がイベントハンドラを日にちに置くと、その週がハイライトされて泡が出て、その日だけがハイライトされます(裸眼で見るには速すぎます)。私が親に置いた場合、オリジナルは決して起こらないようです(デフォルトモードに戻ろうとすると) – redbmk