Chosen:を起動する準備ができていないようです。誰かがこの使用法が正しいか間違っているかを確認できますか?
jQuery( '。chzn-select')。on( ' chosen:ready '、function(){
jQuery( 'li')。ScrollText();
});
「.chzn-select」は、選択されたクラスがこのコードの前にバインドされています。
ありがとう
リスナーをバインドするのが遅すぎると思います(選択の準備ができた後でバインドすると、イベントは表示されません)。 選択したものを適用する前に、リスナーをバインドしてみてください
ああ、それは解決策の一部でした。 また、設定前に選択されたすべてのイベントのバインドを解除して削除する行もありました。 asp.netとpostbacksの奇妙さのために、バインド解除行が追加されたと思います。
迅速な返信ありがとうございます。
閉まっている。 :+1:
もう1つ申し訳ありませんが、この関数で選択したオブジェクトを以下のように取得できるはずですが、それは正しいですか?
jQuery( '。chzn-select')。on( ' chosen:ready '、function(chosen){
jQuery( 'li')。ScrollText();
});
私は新しい要素を取得し、準備ができたらそれに何かをすることを探しています。 選択したオブジェクトにはこれが含まれていますか? objに結果があるようですが、これは常に未定義です。
さて、これをもう一度閉じます。
私はこれがうまくいかないことを理解しました。 選択したドロップダウンの各オプションにイベントを適用したいのですが、問題は、ドロップダウンをクリックするまでオプションが作成されないことです。 したがって、コードを「 chosen:showing_dropdown 」イベントに移動できる可能性があります。
イベントリスナーの最初の引数は、常にイベントオブジェクトです。 パラメータは2番目の引数です: http: //harvesthq.github.io/chosen/options.html#triggered -events
ああ、2番目のパラメーターを見逃しました。 ありがとう。
委任(非推奨の$().live()
など)を使用してイベントをバインドする必要があります。これは、バインド時に要素がページに存在する必要がないためです。
$('.chosen-select').on('click', 'li', handlerFunction);
イベントの委任の詳細については、 https ://learn.jquery.com/events/event-delegation/をご覧ください。
また、 chosen:readyが起動していなかったという問題に遭遇しました。
これは機能しませんでした:
$('select')
.chosen()
.on('chosen:ready', function(){
console.log('chosen:ready')
});
しかし、選択したものをインスタンス化する前にイベントをバインドすることは機能しました:
$('select')
.on('chosen:ready', function(){
console.log('chosen:ready')
})
.chosen();
イベントが発生しています。 ただし、最初のケースでは、リスナーはトリガーされた後に登録された可能性があります
@stofわかりやすく、ありがとうございます。
疑問に思っていますが、リストアイテムが「ready」イベントではなく「showing_dropdown」イベントで作成されるのはなぜですか?
リストアイテムはchosen:showing_dropdown
に作成されません。
chosen:ready
は、結果が作成され、Chosenがイベントを受信する準備ができたときにトリガーされ、 chosen:showing_dropdown
はChosenを開いた後にトリガーされます。
それで、あなたが疑問に思っているのは何ですか? ;)
ドロップダウンをトリガーして開くまで、「選択した結果」リストは常に空です。 私は自分がしていることを行う別の方法を見つけましたが、これがどのように機能しているかについては少し興味がありました。
最も参考になるコメント
また、 chosen:readyが起動していなかったという問題に遭遇しました。
これは機能しませんでした:
しかし、選択したものをインスタンス化する前にイベントをバインドすることは機能しました: