<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');
});
有人知道如何让这些东西有效吗?
答案 0 :(得分:6)
其他您可以使用.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. -->
答案 1 :(得分:2)
答案 2 :(得分:1)
在你的情况下,它不会触发更改事件,它是赋值,你必须调用更改事件。改变如下
你必须使用喜欢
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." );
});