У меня есть простая веб-страница с одиночной кнопкой.
Используя jQuery 3.3.1 , к этой кнопке присоединяется событие «щелчка», так что после нажатия этой кнопки следующий клик в любом месте страницы (document
) дает alert('Clicked!')
.
<div id="container">
<button id="Btn">Click</button>
</div>
<script type="text/javascript">
$(document).ready(function() {
$("#Btn").click(function() {
$(document).click(function() {
alert("Clicked!");
$(document).unbind('click');
});
});
});
</script>
Но, используя этот код, первый щелчок по самой кнопке приводит к alert('Clicked!')
.
Я немного изменил код и прикрепил 'click'event to $(document)
внутри вложенного $(document).ready()
:
<script type="text/javascript">
$(document).ready(function() {
$("#Btn").click(function() {
$(document).ready(function() { // <--here
$(document).click(function() {
alert("Clicked!");
$(document).unbind('click');
});
});
});
});
</script>
Это работает, как задумано, но я все еще не могу вывести такое поведение: зачем мне включать вложенное$(document).ready()
?
Или есть какой-то другой подход для достижения желаемой функциональности?