$(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,果然不是一个爹生的!!