Ну, для начала, я хотел бы отметить, что цель этого вопроса не в том, чтобы спросить, как это делается, а в том, чтобы понять, почему то, как я это сделал, работает.
Я хотел создать текстовые заполнители для элементов формы, и во время игры с jquery я придумал следующий код:
function placehold(id,placeholder) // id of element and placeholder text
{
$("#"+id).val(placeholder); //initialize form field
$("#"+id).focusin(function() //on focus
{
if ($(this).val()==(placeholder))
{
$(this).val(null);
/*if input's value is placeholder then empty
input and wait for value */
}
});
$("#"+id).focusout(function() //on lost focus
{
if ($(this).val()==(""))
{
$(this).val(placeholder); //reset val to placeholder text if empty
}
});
}
И это будет работать, даже если я вызову функцию в нескольких полях, например,
placehold('uname','Please enter a username');
placehold('pword','Please enter a password);
placehold('email','Please enter an email address');
в приведенном выше случае он будет работать во всех трех текстовых полях, как и ожидалось, и в этом заключается мой вопрос:
Где хранятся различные заполнители во время выполнения? хранится ли экземпляр функции для каждого поля, с которым он связан? если да Будет ли это влиять на производительность в долгосрочной перспективе?
Спасибо за ваше время и помощь:)