Функция jQuery работает в консоли, но не в коде

Приведенный ниже код создает поле поиска, а затем присоединяет к нему событие фокуса, поэтому предустановленное значение исчезает, когда пользователь щелкает поле ввода. Строка.focus работает в консоли, но не в коде. Как я могу заставить его работать в коде?

<script type='text/javascript'>
jQuery( document ).ready(function( $ ) {
    jQuery('#site-nav').append("<div class='nav' style='width: 130px; margin-top: 15px;'><form     id='site-search' method='get' action='/search'><input id='search' name='search' class='textfield' tabindex='1' type='text' style='border-radius: 10px; height: 30px;' value='SEARCH'></form></div>")
});
jQuery("#search").focus(function(){$(this).val("");});
</script>

Кстати, я должен сказать "jQuery", потому что наше приложение настроено таким образом, чтобы избежать конфликтов. Спасибо. Благословения

1 ответ

Решение

Переместить линию внутрь ready метод:

jQuery( document ).ready(function( $ ) {
    jQuery('#site-nav').append("<div class='nav' style='width: 130px; margin-top: 15px;'><form     id='site-search' method='get' action='/search'><input id='search' name='search' class='textfield' tabindex='1' type='text' style='border-radius: 10px; height: 30px;' value='SEARCH'></form></div>");
    jQuery("#search").focus(function(){$(this).val("");});
});

Редактировать:

Имейте в виду, что анонимная функция в focus() всегда срабатывает, если поле получает фокус. Так что после этого действия всегда будет пусто

Другие вопросы по тегам