文章背景介绍:做crm后台一个下拉框想进入页面后自动触发onchange事件,想到了trigger()方法,但在我们写的过程中触发不了change事件。当时代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<script type="text/javascript" src="jquery-1.11.3.min.js"></script>
</head>
<body>
<select id="sel">
<option value="天津市">天津市</option>
<option value="北京市">北京市</option>
</select>
<script type="text/javascript">
$('#sel').trigger('change')
$('#sel').change(function(){
alert(1)
})
</script>
</body>
</html>
尝试了给$('#sel')添加value但是还是无法触发事件;
后来我们改变了一下代码的顺序
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<script type="text/javascript" src="jquery-1.11.3.min.js"></script>
</head>
<body>
<select id="sel">
<option value="天津市">天津市</option>
<option value="北京市">北京市</option>
</select>
<script type="text/javascript">
$('#sel').change(function(){
alert(1)
})
$('#sel').trigger('change')
</script>
</body>
</html>
这样事件就触发了,在看了一下代码可能是大意了或者写函数写的多了就觉得无论哪里调用都可以,事实上如果不先有event事件,而是上来就先自动执行事件,是没有效果的。
网友评论