JQuery по функции и документ готов
Я использую функцию jQuery on (), чтобы прикрепить onclick
функционировать с набором якорей на моем сайте следующим образом:
<ul>
<li>First <a href='#' title='delete' class="itemDelete">x</a></li>
<li>Second <a href='http://www.repubblica.it' title='delete' class="itemDelete">x</a></li>
<li>Third <a href='#' title='delete' class="itemDelete">x</a></li>
</ul>
<script type="text/javascript">
$(document).on('click', '.itemDelete', function(e) {
$(this).closest('li').remove();
e.preventDefault();
});
</script>
Должен ли я вставить код JavaScript в следующем блоке?
$(document).ready(function() {
...
});
Если да, то почему?
2 ответа
Этот фрагмент кода не требует полного анализа содержимого документа в любом случае, потому что вы используете document
который всегда существует. Селектор, переданный в качестве второго аргумента, никоим образом не используется для извлечения элементов, поэтому DOM не должен быть готов к этому.
Вы не сможете позвонить $(document).ready
во-первых, если выше не так.
Важно понимать, что за кулисами вы подключаете прямого обычного слушателя событий к document
, Практически все, что делает селектор, - это то, что ваш обратный вызов обработчика не вызывается, если никакие элементы не соответствуют вашему селектору в пути распространения события. И, очевидно, если распространение будет преждевременно остановлено слушателями более низкого уровня, в этом случае оно также не будет запущено.
В этом случае вам не нужно. Так как <script>
После тега HTML для элементов ваш код будет выполнен после загрузки элементов, что устраняет необходимость использовать обработчик событий DOM ready, чтобы гарантировать, что они были загружены.
Тем не менее, я обычно предпочитаю включать весь мой код JavaScript, который работает с элементами на странице, в обработчик событий, готовый к DOM, даже когда это не является строго обязательным; таким образом, если я решу переместить его в другое место - например, в верхнюю часть страницы или во внешний файл - или изменить его каким-либо другим способом, он не сломается.