2013-10-17 81 views
2

我该如何定位一个input focus如何定位单个输入焦点?

$(".right input").focus(function(){ 
    $(".left span").addClass('focus'); 
}).blur(function(){ 
    $(".left span").removeClass('focus'); 
}); 

此代码添加类所有span元素,当我专注于一个input 我将如何设置,以便它可以在类只添加到被聚焦的input? 这里是我的html

<div class="left"> 
    <span class="name"></span> 
    <span class="email"></span> 
    <span class="phone"></span> 
    <span class="address"></span> 
</div> 
<div class="right"> 
<p> 
<label for="name">Your Name:</label> 
<input id="name" type="text" value="Name" autocomplete="off"> 
</p> 
<p> 
<label for="email">Email Address:</label> 
<input id="email" type="text" value="Email" autocomplete="off"> 
</p> 
<p> 
<label for="phone">Phone Number:</label> 
<input id="phone" type="text" value="Phone" autocomplete="off"> 
</p> 
<p> 
<label for="address">Your Address:</label> 
<input id="address" type="text" value="Address Line 1" autocomplete="off"> 
</p> 
<p> 
<label for="address2">Line Address 2:(optional)</label> 
<input id="address2" type="text" value="Address Line 2" autocomplete="off"> 
</p> 
</div> 

编辑 我可以实现在选择这个代码的答案给出的代码?

 // Trying to target font customization on single input focus 
    // and not all together 
    $("#fs").change(function() { // change font family style. 
     $('.email').css("font-family", $(this).val()); 
    }); 
    $("#size").change(function() { // change font size. 
     $('.email').css("font-size", $(this).val() + "pt"); 
    }); 

要编辑span属于被集中在input

回答

1

使用this参考

$(".right input").focus(function(){ 
    $(".left").find('.'+this.id).addClass('focus'); //<--find element with those classes inside .left element 
}).blur(function(){ 
    $(".left").find('.'+this.id).removeClass('focus'); 
}); 
1
$('.right input').each(function(){ 
    var id = $(this).attr('id'); 

    $(this).bind('focus', function(){ 
    $('.left').find('.'+ id).addClass('focus'); 
    }); 

    $(this).bind('blur', function(){ 
    $('.left').find('.'+ id).removeClass('focus'); 
    }); 
}); 
1

试试这个

demo fiddle

$(".right input").focus(function(){ 
    var cls = $(this).prop('id'); 
    $(".left span."+cls).addClass('focus'); 
}).blur(function(){ 
    $(".left span").removeClass('focus'); 
}); 
1

试试这个,

$(".right input").focus(function(){ 
    $(".left span."+this.id).addClass('focus'); 
}).blur(function(){ 
    $(".left span."+this.id).removeClass('focus'); 
}); 

Demo