Пока я пытался изучить jquery, я узнал, что $ (селектор) возвращает объект, который имеет все совпадения этого селектора и является итеративным, как массивы. например, $("button")
вернет объект, который будет иметь доступ ко всем тегам кнопки DOM таким образом, что для доступа к первому тегу кнопки вы можете использовать $["button"][0]
для второй вы можете использовать $["button"][1]
и так далее.
Итак, ниже приведен фокус кода на закомментированной строке 1 и строке 2.
<body>
<button>Click me</button>
<script>
$(document).ready(function() {
// line 1
$("button").click(function() {
console.log("1");
// line 2
$("button").click();
});
});
</script>
</body>
Строка 2 внутри функции обработчика событий line1 настроена на бесконечный цикл, так как вы можете видеть, что когда я нажимаю кнопку "Нажми меня", она запускает строку 1, внутри которой находится строка 2, которая тоже снова запускает строку 1 и так далее. Теперь посмотрите приведенный ниже фрагмент кода с измененной строкой 2.
<script>
$(document).ready(function() {
// line 1
$("button").click(function() {
console.log("1");
// line 2
$("button")[0].click();
});
});
</script>
На этот раз он не устанавливает бесконечный цикл, а выводит на консоль "1" только два раза, почему так?