我有一个简单的select
html元素,我能够附加/触发事件change
,并在手动使用更改时触发,但是当我使用javascript更改值时。它没有解雇事件。通过一些谷歌搜索和研究我意识到,change
事件不会触发javascript更改值。
那么,我如何通过javascript跟踪价值变化的事件。我知道propertychange
适用于IE浏览器。但我想在Chrome中跟踪这个。有办法吗?
这是我正在使用的代码
<select id="state">
<option>listening</option>
<option>reading</option>
<option>idle</option>
</select>
// this code doesnt trigger event for javascript changed values in chrome
$('#state').bind('propertychange change click keyup input paste', function(){
var new_state = $(this).val();
console.log("state changed to ", new_state);
});
您可以通过呼叫他来发起javascript事件。像这样:
$('btn').click(); // this will simulate a click
所以你可以这样做:
$('yourselector').change();
或者您可以使用Trigger()(较慢)并执行以下操作:
$('your selector').trigger( "change" );