如何为选择(jQuery)触发更改事件

Leo*_*Leo 18 javascript jquery jquery-chosen

在单击重置按钮之前,我在选择(下拉列表)中选择"公司".单击重置后,事件正常发生.我再次选择"公司",但change不会发生下拉列表中的事件.

任何人都可以告诉我如何在单击重置按钮然后相同的元素后触发下拉列表的更改事件?

我到目前为止的代码:

$("#mainMenu").change(function(e){
    e.preventDefault();
    loadFirstManu(true);
});
Run Code Online (Sandbox Code Playgroud)

重置按钮的代码:

$("#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('');
  });
Run Code Online (Sandbox Code Playgroud)

});

bon*_*iii 25

这就是我想出来的:

$('#my-select').val(5).trigger("liszt:updated")
Run Code Online (Sandbox Code Playgroud)

liszt:updated不再使用新版本的选择,而是使用下面的Alexandru Cojan的答案暗示

 trigger("chosen:updated");
Run Code Online (Sandbox Code Playgroud)

  • 触发器现在被"选中:更新"` (24认同)

小智 9

对于选择的较新版本,该事件是"已选择:已更新"

$(selector).trigger("chosen:updated")
Run Code Online (Sandbox Code Playgroud)


Ale*_*der 7

如果我只需要在选择的选择中刷新值 - .trigger('chosen:updated')就足够了.但如果我有改变处理程序并希望它被调用 - 我需要这样做.trigger('chosen:updated').change()