Document.ready не будет работать

0

Любая идея, почему этот код не работает? Я определил текстовое поле ввода с этим идентификатором в HTML.

$('document').ready(function()
{ 
    $('#inputUsername').keyup(alert("something"));
}
);
  • 0
    Я ожидаю, что код будет работать ровно один раз. ну, по крайней мере, похоже на работу. Вы получите оповещение о том, что DOM готов, не выполняя keyup, тогда вы можете увидеть ошибку в консоли.
  • 0
    @KevinB На самом деле это так, как я проверял это на скрипке
Теги:

5 ответов

11
Лучший ответ

keyup выполняет функцию:

$('#inputUsername').keyup(function() {
    alert("something")
});

Или, определите функцию перед рукой:

function clickHandler(event) {
    alert("something");
}

И передайте его:

$('#inputUsername').keyup(clickHandler)

И unquote document - это его собственная переменная.

  • 0
    @JasonP - Обновлен ответ, чтобы показать оба случая.
3

Документ - это переменная в браузере. Вам не нужны одиночные кавычки:

$(document).ready(function () { ... });
  • 2
    Это правда, но проблема не в этом, jQuery выясняет это, даже если он цитируется.
2

document - это собственная глобальная переменная (стандартная DOM).

$(document).ready(function()

Этот пример можно увидеть прямо на странице документации http://api.jquery.com/ready/

0

Ваш код попытается выбрать элемент, называемый документом.

<document></document>

Вместо этого вы хотите использовать глобальную переменную, называемую документом, или использовать стенографию, которая должна просто передать функцию обработчика непосредственно в селектор jQuery.

$(document).ready(function(){
  // this runs on DOM ready
});

или

$(function(){
  // this runs on DOM ready
});
  • 0
    В случае $('document').ready(...) jQuery предполагает, что вы ссылались на document : jsfiddle.net/T5eQs
  • 0
    Jquery фактически игнорирует все, что было в части $(...) когда вы используете .ready (он попытается выбрать его, но он не будет использоваться)
Показать ещё 1 комментарий
0

Ваша ошибка здесь:

$('#inputUsername').keyup(alert("something"));

.keyup принимает функцию, а не выше. вы можете сделать что-то вроде:

$('#inputUsername').keyup(function(){alert("something")});

Он будет вызывать только функцию;)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню