web-dev-qa-db-ja.com

Chosen(jQuery)の変更イベントをトリガーする方法

リセットボタンをクリックする前に、[選択済み](ドロップダウンリスト)で[会社]を選択します。リセットをクリックすると、イベントが正常に発生します。もう一度[会社]を選択しましたが、ドロップダウンリストでchangeイベントが発生しません。

リセットボタンをクリックしてから同じ要素をクリックした後、ドロップダウンリストの変更イベントをトリガーする方法を教えてもらえますか?

私がこれまでに持っているコード:

$("#mainMenu").change(function(e){
    e.preventDefault();
    loadFirstManu(true);
});

リセットボタンのコード:

$("#btn_reset").click(function() {
  CKEDITOR.instances.ckeditor.setData('');
  $('.mchosen').each(function() {
     $(this).val('').trigger('liszt:updated');
     $('#submenu').attr('disabled', 'disabled').html('');
     $('#secondsubmenu').attr('disabled', 'disabled').html('');
     $('#s-menu').removeClass('required').html('');
     $('#secondsubmenu').removeClass('validate[required]');
     $('#tabmenu').attr('disabled', 'disabled').html('');
     $('#tab').removeClass('required').html('');
  });

});

18
Leo

これは私が理解したものです:

$('#my-select').val(5).trigger("liszt:updated")

liszt:updatedは、以下の代わりに Alexandru Cojan's が示唆するように選択された新しいバージョンで動作しなくなりました

 trigger("chosen:updated");
25
bonyiii

選択したイベントの新しいバージョンの場合、イベントは「chosen:updated」です

$(selector).trigger("chosen:updated")
9
Alexandru Cojan

選択した選択の値を更新する必要がある場合は、.trigger('chosen:updated')で十分です。しかし、変更ハンドラーがあり、それを呼び出したい場合は、.trigger('chosen:updated').change()を実行する必要があります

7
Alexander

これがあなたの場合であるかどうかはわかりませんが、上記のコードは動作するはずです、

$("#mainMenu").change(function(e){
        e.preventDefault();
        loadFirstManu(true);
    });

nfocus選択入力時にほとんどのブラウザで「変更」イベントが発生することに注意してください

したがって、resetをクリックすると、リセットアクションを実行する直前にonchangeがトリガーされます。

選択を変更した後、選択入力の外側をクリックして、まだ機能するかどうかを確認してください

0
Shehabic

$( '#mainMenu')がどこかで変更されている可能性があるため、.onを使用することをお勧めします(例なしで言うことはできません)。これを試してください:

$("body").on('change','#mainMenu',function(){ 
  ...
});

または「重い」ボディの代わりに任意の親セレクター

0
apoq

私があなたを理解するのが間違っていないなら、あなたはリセットボタンをクリックした後にイベントの変更をトリガーしたいです。コードに1行追加するだけでこれを行うことができます// code

     $("#btn_reset").click(function(){
       // your code here
       $("#mainMenu").trigger('change'); 
       //you can write this as per your requirements ie. at start or end.

      });
0
mohan.gade