У меня есть три входа.Я хочу, чтобы все они начинались и заканчивались с одинаковой шириной, но в случае щелчка по одному из них я хочу, чтобы он увеличивал ширину, а ВСЕ ДРУГИЕ - уменьшал ширину.Есть ли способ, которым, если один вход сфокусирован, а другие НЕ сфокусированы, но НЕ размыты, я могу применить новый класс к входам?
Вид рабочей модели можно найти по адресу: http://testserver1.staceylanehosting.net
Вот мой код jQuery:
$(document).ready(function() {
$('#wrapper-newsletter input[type="text"]').addClass("idleField");
$('#wrapper-newsletter input[type="text"]').focus(function() {
$(this).removeClass("idleField").addClass("focusField");
if (this.value == this.defaultValue){
this.value = '';
}
if(this.value != this.defaultValue){
this.select();
}
});
$('#wrapper-newsletter input[type="text"]').blur(function() {
$(this).removeClass("focusField").addClass("idleField-shrink");
if ($.trim(this.value == '')){
this.value = (this.defaultValue ? this.defaultValue : '');
}
});
});
Вот HTML-разметка:
<div id="wrapper-newsletter" class="grid_8">
<h4>Receive Updates</h4>
<p>To recieve notifications when our site is updated, enter your email address and name below!</p>
<form>
<input type="text" class="idleField" name="newsletter-name" value="Name" />
<input type="text" class="idleField" name="newsletter-surname" value="Surname" />
<input type="text" class="idleField" name="newsletter-email" value="Email" />
<a href="#" title="Subscribe" class="button-blue">
<span>Subscribe</span>
</a>
</form>
</div><!-- div#wrapper-newsletter -->
и соответствующий CSS:
#wrapper-newsletter input[type=text] { width: 102px; }
.idleField { }
.idleField-shrink{ width: 63px !important; }
#wrapper-newsletter input[type=text]:focus { width: 180px; }