我试图通过W3学校弄清楚这个例子,但据我所知,它不起作用。如果我错过了某些东西,有人可以引导我吗?
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("#div1").on("click", function(){
$(this).css("background-color", "pink");
});
$("#div2").live("click", function(){
$(this).css("background-color", "pink");
});
});
</script>
</head>
<body>
<h4 style="color:green;">This example demonstrates how to achieve the same effect using on() and live().</h4>
<div id="div1" style="border:1px solid black;">This is some text.
<p>Click to set background color using the <b>on() method</b>.</p>
</div><br>
<div id="div2" style="border:1px solid black;">This is some text.
<p>Click to set background color using the <b>live() method</b>.</p>
</div>
</body>
</html>
小提琴:https://jsfiddle.net/gratiafide/dwmwm43a/
来源:http://www.w3schools.com/jquery/tryit.asp?filename=tryjquery_event_on_live
答案 0 :(得分:4)
这是因为版本1.7中已弃用jQuery.fn.live(..);
并在版本1.9中已完全删除。
您正在使用jQuery 1.12.2
,此版本的jQuery中的方法jQuery.fn.live(...);
不存在。
要让jQuery.fn.live(...);
工作,您必须将script
元素更改为:
<script type="text/javascript" src="https://code.jquery.com/jquery-1.7.min.js"></script>
如果您想使用最新版本的jQuery,请改用:
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="https://code.jquery.com/jquery-1.12.2.min.js"></script>
<script>
$(document).ready(function() {
$("#div1").on("click", function() {
$(this).css("background-color", "pink");
});
});
</script>
</head>
<body>
<div id="div1" style="border:1px solid black;">
Hello World!
<p>Click me to make me pink!</p>
</div>
</body>
</html>
答案 1 :(得分:2)
从jQuery 1.7开始,不推荐使用.live()
方法。
你的小提琴你正在使用v1.12.2
与w3c相同:
src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js">
所以将src更改为:
src="https://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.min.js"
并且有效
答案 2 :(得分:2)
不再推荐使用.live()方法,因为更高版本的jQuery提供了更好的方法,没有它的缺点。
答案 3 :(得分:0)
请注意:您的示例不是来自W3C(请参阅您提供的标题)。你引用w3schools并在stackoverflow上查看其他问题,你会发现w3c和w3school之间没有联系(前两个字符除外)。
答案 4 :(得分:-1)
还请确保您在w3schools浏览器支持中查看它是否可以正常工作