Jquery 变更事件不发生';当<;的值;选择>;以编程方式设置
通常,当用户选择Jquery 变更事件不发生';当<;的值;选择>;以编程方式设置,jquery,Jquery,通常,当用户选择中的项目时,“更改”事件将被触发。 但是,当您使用$('select').val('something')更改相同的值时,不会触发事件 我知道我能做到: $('select').val('something').trigger('change') 但这不是我想要解决的问题 有没有一种方法可以让更改事件正常工作,而不用手动触发它 为了更好地解释问题,我准备了一个快速的JSFIDLE,请查看: 干杯这是不可能的,除非您手动触发更改功能。如果不喜欢多次键入该代码,请扩展jQuery对
中的项目时,“更改”事件将被触发。
但是,当您使用$('select').val('something')
更改相同
的值时,不会触发事件
我知道我能做到:
$('select').val('something').trigger('change')代码>
但这不是我想要解决的问题
有没有一种方法可以让更改事件正常工作,而不用手动触发它
为了更好地解释问题,我准备了一个快速的JSFIDLE,请查看:
干杯这是不可能的,除非您手动触发更改功能。如果不喜欢多次键入该代码,请扩展jQuery对象小提琴:
“无需手动触发”。。。不,简短回答:不,使用trigger()你想解决什么问题.val()
不会执行此操作。
(function($){
$.fn.changeVal = function(value){
return this.each(function(){
$(this).val(value).trigger('change');
});
}
})(jQuery);
//Usage:
$('select').changeVal('something');