不同步骤绑定事件,以及不同事件的执行顺序

不同方法绑定事件,以及不同事件的执行顺序

 

$(document).ready(function(){
	$("input[name='n']").on("keyup",function(){
		console.log("name");
	});
	
	$(".c").on("keyup",function(){
		console.log("class");
	})
	
	$("#a").on("keyup",function(){
		console.log("id");
	});
	
})

 我曾经一直天真地以为应该是以id绑定的先执行,今天试了才发现是按照定义的顺序执行,哪个写在前面哪个就先执行。。。

 

如果分开文件定义,也是一个道理,写在前面的文件会先执行。

 

上一篇提到delegate,我试了一下这个:

 

<html>
<head>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="test.js"></script>
<script type="text/javascript">
$(document).ready(function(){
	$(".input_class").on("keyup",function(){
		console.log("class");
	});

	$("#div_id").delegate("input","keyup",function(){
		console.log("delegate");
	});
	
});
</script>

</head>

<body>

<div id="div_id">
	<input type="text" id="input_id" name="input_name" class="input_class"/> 
</div>

</body>
<script type="text/javascript" src="test.js"></script>
</html> 

 test.js:

$(document).ready(function(){
	
	$("input[name='input_name']").on("keyup",function(){
		console.log("name");
	});
	
	$("#input_id").on("keyup",function(){
		console.log("id");
	});
	
})

 test.js写了两遍,中间在html离插了一段。输出:

  name

  id

  class

  name

  id

  delegate

 

test.js执行了两遍才轮到delegate,果然不是一个爹生的!!