我试图在代码中使用'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>
发布于 2018-12-06 20:46:52
在on()的文档中,重点是我的:
还有
$(document).on("ready", handler),从jQuery 1.8开始不推荐使用,在jQuery 3.0中删除。请注意,如果DOM在附加此事件之前准备就绪,则不会执行处理程序。
发布于 2018-12-06 20:49:24
这是因为ready不是一个事件(既不是jQuery也不是html)。它是jQuery创建的用于确定文档状态的函数。所以不要混淆这两件事。
只有两种方法可以使用就绪状态。通过ready函数,或者通过速记,基本上是相同的:
$(document).ready(function() {
// ...
});
$(function() {
// ...
});发布于 2018-12-06 21:49:02
下面提到的第一个代码是无效的jquery。
$(document).on('ready', function() {请使用这个,而不是这个。
$(function(){
});
//Or
$(document).ready(function() {
});https://stackoverflow.com/questions/53651676
复制相似问题