Я пытался использовать «в» в моем коде, но не удалось.Код, который я пробовал, был таким:
<html> <head> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <script type="text/javascript"> function clickHandler(e) { alert('Click!'); } $(document).on('ready', function() { $('#click_me').on('click', clickHandler); }) </script> </head> <body> <input id="click_me" type="button" value="click me" /> </body> </html>
Хотя я могу заменить этот код на код ниже.Я до сих пор удивляюсь, почему мой первый код с событием on не работал.
on
<html> <head> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <script type="text/javascript"> function clickHandler(e) { alert('Click!'); } $(document).ready(function() { $('#click_me').click(clickHandler); }) </script> </head> <body> <input id="click_me" type="button" value="click me" /> </body> </html>
Это происходит потому, что ready не является событием ( нет ни в jQuery, ни в html ).Это функция, созданная jQuery для определения состояния документа.Так что не путайте эти две вещи.
ready
Есть только два способа использовать состояние готовности.По функции ready или по сокращению, что в основном то же самое:
$(document).ready(function() { // ... }); $(function() { // ... });
Первый код, указанный ниже, не является допустимым jquery.
$(document).on('ready', function() {
вместо этого, пожалуйста, используйте этот.
$(function(){ }); //Or $(document).ready(function() { });
Из документации для on(), выделенная шахта:
on()
Существует также $(document).on("ready", handler), устарело с jQuery 1.8 и , удалено вjQuery 3.0 .Обратите внимание, что если DOM станет готовым до того, как будет прикреплено это событие, обработчик не будет выполнен.
$(document).on("ready", handler)