通常,当用户选择<select>
中的项目时,会发生'更改'事件。
但是,当您使用<select>
更改相同$('select').val('something')
的值时,该事件不会被触发。
我知道我能做到:
$('select').val('something').trigger('change');
但这不是我试图解决的问题......
有没有办法让变更事件有效,而无需手动触发?
我把一个快速的JsFiddle放在一起以更好地解释问题,检查出来:
干杯
答案 0 :(得分:5)
除非您手动触发更改功能,否则无法实现。如果您不喜欢多次键入该代码,请扩展jQuery对象。 小提琴:http://jsfiddle.net/W723K/2/
(function($){
$.fn.changeVal = function(value){
return this.each(function(){
$(this).val(value).trigger('change');
});
}
})(jQuery);
//Usage:
$('select').changeVal('something');