我尝试在代码中使用“ 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).on('ready', function() {
$('#click_me').on('click', clickHandler);
})
</script>
</head>
<body>
<input id="click_me" type="button" value="click me" />
</body>
</html>
尽管我可以用下面的代码替换此代码。我仍然想知道为什么我的事件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>
答案 0 :(得分:4)
从on()
的文档中,重点是我的:
还有
$(document).on("ready", handler)
,自jQuery 1.8起不推荐使用, 在jQuery 3.0中已删除 。请注意,如果在附加此事件之前DOM准备就绪,则将不执行处理程序。
答案 1 :(得分:1)
之所以会这样,是因为ready
不是事件(jQuery和html中都不是 )。 jQuery已创建此函数来确定文档的状态。所以不要混淆这两件事。
只有两种方法可以使用就绪状态。通过ready
函数或简写,基本上是相同的:
$(document).ready(function() {
// ...
});
$(function() {
// ...
});
答案 2 :(得分:0)
下面提到的第一个代码不是有效的jquery。
$(document).on('ready', function() {
请使用此密码。
$(function(){
});
//Or
$(document).ready(function() {
});