Javascript Jquery set select option by.val()不会在(';change';,)上激发

Javascript Jquery set select option by.val()不会在(';change';,)上激发,javascript,jquery,Javascript,Jquery,一个 两个 三 单击我 $(“#按钮”)。单击(函数(){ $('面板').val(3); }); $('#panel')。on('change',function(){ 警报(“Hi”); }); 有人知道如何让这些东西工作吗?您需要手动触发事件 $('#panel').val(3).change(); 您还可以使用: 描述:执行附加到的所有处理程序和行为 给定事件类型的匹配元素 $(“#按钮”)。单击(函数(){ $('#panel').val(3).trigger(“change”


一个
两个
三
单击我
$(“#按钮”)。单击(函数(){ $('面板').val(3); }); $('#panel')。on('change',function(){ 警报(“Hi”); });


有人知道如何让这些东西工作吗?

您需要手动触发事件

$('#panel').val(3).change();

您还可以使用:

描述:执行附加到的所有处理程序和行为 给定事件类型的匹配元素

$(“#按钮”)。单击(函数(){
$('#panel').val(3).trigger(“change”);
});
$('#panel')。on('change',function(){
警报(“Hi”);
});

一个
两个
三
点击我

在您的情况下,它不会触发更改事件,它是赋值,您必须调用类似的更改事件。更改如下
你必须使用like HTML:


.trigger('change')
change()
之间,哪一个更好?在您的示例中是相同的。事情实际上是按照设计的方式工作的。考虑一种情况,当您以编程方式更改onchange处理程序中的值时,该更改将触发新的onchange,该值将再次更改。。。
$('#panel').val(3).change();
<select class="panel" >
                                                                                   <option value="1">One</option>
    <option value="2">Two</option>
    <option value="3">Three</option>
                                                                                </select> 
<button id="button">Click me</button> <!--click will change the select. But it doesnt fire the on change function. -->
$('#button').click(function(){
    $('.panel').val(3);
    $( ".panel" ).change();
});
 $( ".panel" ).change(function() {
  alert( "Handler for .change() called." );
});