[英]Jquery set select option by .val() does not fire on('change', )
<select id="panel" >
<option value=1>One</option>
<option value=2>Two</option>
<option value=3>Three</option>
</select>
<button id="button">Click me</button> <br>
$('#button').click(function(){
$('#panel').val(3);
});
$('#panel').on('change',function(){
alert('Hi');
});
有人知道如何使这些东西有效吗?
您还可以使用.trigger() :
描述:执行附加到给定事件类型的匹配元素的所有处理程序和行为。
$('#button').click(function() { $('#panel').val(3).trigger("change"); }); $('#panel').on('change', function() { alert('Hi'); });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <select id="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. -->
在你的情况下,它不会触发更改事件,它是赋值,你必须调用更改事件。 改变如下
你必须像HTML一样使用:
<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. -->
JQUERY:
$('#button').click(function(){
$('.panel').val(3);
$( ".panel" ).change();
});
$( ".panel" ).change(function() {
alert( "Handler for .change() called." );
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.