Я пытаюсь добавить общую простую функцию, которая показывает/скрывают связанные намеки текстов полевых формы, когда поле получает/теряет фокус:Функция anonymus внутри функции перезаписывается при последующих вызовах?
function capFirstLetter(string) {
return string.charAt(0).toUpperCase() + string.slice(1);
}
function pairFieldHint(fieldName) {
hintField = $('#hint' + capFirstLetter(fieldName));
fieldName = $('#' + fieldName);
hintField.toggle();
fieldName.focus(function() {
hintField.show('fast');
});
fieldName.blur(function() {
hintField.hide('fast');
});
}
pairFieldHint('companyname');
pairFieldHint('address');
Я думал, что я могу написать его один раз и использовать его для любого аналогичного поля/намек пара на основе конкретного именования:
<label class="required">Company Name</label><input type="text" name="companyname" id="companyname" />
<div class="field-hint" id="hintCompanyname">Invoice to this name</div>
<label class="required">Address</label><input type="text" name="address" id="address" />
<div class="field-hint" id="hintAddress">Eg. New York, 6th ave 4.</div>
проблема заключается в том, что даже если я нажимаю на поле COMPANYNAME, адрес намек получает показан/скрыт. Кажется, что последний вызов парыFieldHint отменяет любые предыдущие.
Смотрите в действии: http://jsfiddle.net/Kh62D/
Может функции Анонимус внутри получает всегда переписывается? Что должно быть не так?
Спасибо, ты звезда :) –
Спасибо, Бен, за подробное объяснение. Я не знал о свойствах окна. И я думаю, что я провел слишком много времени в php :) –