Я пытаюсь создать фрагмент JavaScript, который позволит мне просто добавить <input>
с определенным классом, и он автоматически добавит к нему поведение, похожее на заполнитель. Проблема в том, что я загружаю некоторые входы через AJAX. Я использую метод .live()
, чтобы обойти это, однако .data()
не хочет играть.
Вот пример:
JQuery
$(".placeHolder").data("originalValue", $(this).val());
$(".placeHolder").live("focus", function() {
if($(this).val() == $(this).data("originalValue"))
{
$(this).val('');
}
});
$(".placeHolder").live("blur", function() {
if(!$(this).val().length)
{
$(this).val($(this).data("originalValue"));
}
});
// Load inputs into an element
$("selector").load("loadInput.php", function(response, status, xhr) {
$(".placeHolder").data("originalValue", $(this).val());
});
HTML
<input type="text" name="foo" value="Bar" class="placeHolder">
Проблема в том, что исходное значение <input>
не сохраняется .data()
нигде - даже при вызове .post()
. На странице может быть несколько .placeHolder
.
Я неправильно использую .data()
? Если нет, то что еще не так?