Javascript 如何为所选对象触发更改事件(jQuery)

Javascript 如何为所选对象触发更改事件(jQuery),javascript,jquery,jquery-chosen,Javascript,Jquery,Jquery Chosen,在我点击重置按钮之前,我在所选(下拉列表)中选择“公司”。事件在我单击“重置”后正常发生。我再次选择“公司”,但dropdownlist中的事件change未发生 有谁能告诉我,在单击重置按钮和相同的元素后,如何触发dropdownlist的更改事件 到目前为止,我掌握的代码是: $("#mainMenu").change(function(e){ e.preventDefault(); loadFirstManu(true); }); 重置按钮的代码: $("#btn_res

在我点击重置按钮之前,我在所选(下拉列表)中选择“公司”。事件在我单击“重置”后正常发生。我再次选择“公司”,但dropdownlist中的事件
change
未发生

有谁能告诉我,在单击重置按钮和相同的元素后,如何触发dropdownlist的更改事件

到目前为止,我掌握的代码是:

$("#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('');
  });

}))

我不知道这是否是您的情况,但您上面的代码应该可以工作

$("#mainMenu").change(function(e){
        e.preventDefault();
        loadFirstManu(true);
    });
但是请注意,当您取消焦点选择输入时,大多数浏览器上都会发生“更改”事件

因此,当您单击“重置”
时,在执行重置操作之前,会触发“更改”


现在,在更改选择后,尝试在选择输入外部单击,看看它是否仍然有效

也许您应该尝试使用.on,因为您的$(“#主菜单”)可能在某个地方发生了更改(不能说没有示例)。尝试这样做:

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

或者任何父选择器,而不是“重”体

如果我没有错误地理解您,那么您希望在单击重置按钮后触发事件更改。 只需在代码中添加一行就可以做到这一点 //代码

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

      });

这就是我想出来的:

$('#my-select').val(5).trigger("liszt:updated")
liszt:updated
不再适用于新版本的selected,请使用下面的答案

 trigger("chosen:updated");

对于较新版本的Selected,事件为“Selected:Update”


如果我只需要刷新选中的值,选择-
。触发器('selected:updated')
就足够了。但是,如果我有更改处理程序并希望调用它-我需要执行
.trigger('selected:updated').change()

事件发生在我单击reset按钮之前,之后我选择了我在单击reset之前选择的元素,因此不会发生任何事件。因为我不知道html/代码的结构,所以可以添加类似alert的内容(“triggered”);在.change()函数中,您使用该函数来了解单击“重置”后的错误确切位置,以及单击“重置”前的相同元素未发生事件,我还发出了警报(“Hello”)要检测事件是否发生或是否最终仍未发生,请尝试删除e.preventDefault。我认为它在selectThank中没有任何用处。这是1.0的新触发器名称约定,如中所述。这是我需要的。我将一个更改事件绑定到我选择的DDL和此
。trigger('selected:updated')。change()
帮助我实现了调用更改功能
$(selector).trigger("chosen:updated")