jQuery знак доллара путаница - PullRequest
9 голосов
/ 03 июня 2011

Я немного сбит с толку относительно знака доллара в jQuery, и надеялся, что кто-нибудь может мне помочь.

У меня есть следующее объявление функции:

$(function() {
    $( "#create-discussion" ).button().click(function() {
        alert("Clicked");
    });

    $( "#listitems tr" ).click(function(event) {
        alert("clicked");
    });
});

Почему-топервое объявление функции для кнопки «создать обсуждение» работает отлично;при нажатии появляется всплывающее окно.Однако второй не работает, и при нажатии на строки таблицы всплывающее окно не создается.

Это какой-то нюанс в отношении кнопки onClicks по сравнению со строкой таблицы onClicks?Я упускаю что-то глупо очевидное?

Кроме того, я думаю, что было бы полезно, если бы кто-то объяснил, что на самом деле делает $(function() {}), поскольку я отношусь к этому как $(document).ready(), и не уверенЯ могу это сделать.

Ответы [ 2 ]

12 голосов
/ 03 июня 2011

Знак доллара ($) на самом деле является псевдонимом для функции jQuery.И согласно документации , если вы передадите функцию обратного вызова в качестве аргумента этой функции, она будет выполнена, когда DOM будет готов .

Когда дело касаетсявторая часть вашего вопроса (о том, почему вторая часть кода не работает): просто проверьте селекторы.Для меня это работает отлично (см. jsfiddle - это без метода .button(), потому что я не загружаю jQuery UI), поэтому это может быть вызвано неправильными селекторами.

4 голосов
/ 03 июня 2011

То, что вы делаете, должно работать, пока ваш текст селектора "#listitems tr" имеет что-то допустимое для выбора.

Вы можете проверить, выполнив ... если результат равен 0, это означает, что jQuery этого не сделалнайти любые действительные элементы

alert($("#listitems tr").length);

Когда вы совершаете звонок

$("a").click(function(evt) { alert("hello world!"); });

Вы связываете событие щелчка со всеми тегами на своей странице.Вы вполне можете сделать то же самое с ...

$("a").click(myFunc);
function myFunc(evt) { alert("hello world!"); }

Функция щелчка может быть прикреплена к любому элементу HTML.Это не обязательно должна быть кнопка, это может быть и т. Д. Элемент даже не должен быть видимым, хотя вы сможете запускать щелчок, только если вы вызовете фактическое событие, выполнив ...

$ ("a"). Click ();

$ ("...") - это просто сокращение для ввода jQuery ("...")

Надеемсяэто отвечает на ваши вопросы.

...