12只怕有心人
2016-10-12 13:05
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<title></title>
<style>
.left div,
.right div {
width: 500px;
height: 50px;
padding: 5px;
margin: 5px;
float: left;
border: 1px solid #ccc;
}
.left div {
background: #bbffaa;
}
.right div {
background: yellow;
}
</style>
<script src="http://libs.baidu.com/jquery/1.9.1/jquery.js"></script>
</head>
<body>
<h2>.focusin()方法</h2>
<div class="left">
<div class="aaron">
点击聚焦:<input type="text" />
<br>
点击聚焦:<input type="text" />
</div>
</div>
<div class="right">
<div class="aaron1">
点击聚焦并传递参数:<input type="text" />
<br>
点击聚焦并传递参数:<input type="text" />
</div>
</div>
<script type="text/javascript">
//input聚焦
//给input元素增加一个边框
$("input:last-child").focusin(function() {
$(this).css('border','12px solid red')
})
//D
$("input:first").focusin(function(){
$(this).css('border',"12px solid green")
})
</script>
<script type="text/javascript">
//不同函数传递数据
function fn(e) {
$(this).val(e.data)
}
function a() {
$('input:first-child.focusin('慕课网', fn)
}
a();
//DIY
function fn(e){
$(this).val(e.data)
}
function a(){
$("input:last-child").focusin("请输入密码",fn)
}
a();
</script>
</body>
</html>
黑体是我自己增加的,为什么这时候第一个框就无法实现点击聚焦并传递参数了?
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<title></title>
<style>
.left div,
.right div {
width: 500px;
height: 50px;
padding: 5px;
margin: 5px;
float: left;
border: 1px solid #ccc;
}
.left div {
background: #bbffaa;
}
.right div {
background: yellow;
}
</style>
<script src="http://libs.baidu.com/jquery/1.9.1/jquery.js"></script>
</head>
<body>
<h2>.focusin()方法</h2>
<div class="left">
<div class="aaron">
点击聚焦:<input type="text" />
<br>
点击聚焦:<input type="text" />
</div>
</div>
<div class="right">
<div class="aaron1">
点击聚焦并传递参数:<input type="text" />
<br>
点击聚焦并传递参数:<input type="text" />
</div>
</div>
<script type="text/javascript">
//input聚焦
//给input元素增加一个边框
$("input:eq(1)").focusin(function() {
$(this).css('border','1px solid red')
})
//D
$("input:eq(0)").focusin(function(){
$(this).css('border',"1px solid green")
})
</script>
<script type="text/javascript">
//不同函数传递数据
function fn(e) {
$(this).val(e.data)
}
function b() {
$("input:eq(2)").focusin("慕课网", fn)
}
b();
//DIY
function fn(e){
$(this).val(e.data)
}
function a(){
$("input:eq(3)").focusin("请输入密码",fn)
}
a();
</script>
</body>
</html>
自己对比了下两段代码发现如下
1.首先选择器last和last child,first和first child是不一样的
四个input分别为eq(0)-(3)
在点击聚焦和点击聚焦并传递参数的2段代码中,
如果用
$("input:last")作为选择器,结果只改变了eq(3)
$("input:last-child")作为选择器,改变eq(1)和eq(3)
$("input:first")作为选择器,结果只改变了eq(0)
$("input:first-child")作为选择器,改变eq(0)和eq(2)
多个“child"就需要满足两个条件:
被选取input有父元素,而且input是该父元素的第一个元素
2.//不同函数传递数据中两个函数起名不能重复.
3. $('input:first-child.focusin('慕课网', fn) 中漏了一个)
还要再打牢基础.
jQuery基础(三)—事件篇
89997 学习 · 625 问题
相似问题
回答 2
回答 3