此脚本与 jquery 3 不兼容



当我包含jquery 1.8.3时,此脚本工作正常,但它不适用于jquery 3.2.1 我应该更改什么? 这里是它来自的链接

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Demo of Protecting Javascript Code From Copying</title>
<!-- jQuery Library 1.8.3 -->
<script type="text/javascript" src="js/jquery/jquery.min.183.js"></script>
<script type="text/javascript">
$(window).load(function() {
$.ajax({
url: 'js/js.php',
type:'POST',
cache: false,
success: function(data){
if(data){
$('body').append(data);
}
}
}); 
})
</script>
</head>
<body>
Demo of Protecting Javascript Code From Copying.
</body>
</html>

使用$(window).on("load",function() {而不是$(window).load(function() {

.load()方法作为绑定load事件的一种方式,自 jQuery 1.8 起已弃用,并在 3.0 中删除。

删除了已弃用的事件别名 自jQuery 1.8以来不推荐使用的.load,.unload和.error不再存在。使用 .on() 注册侦听器。

参考:发行说明(关键字搜索"加载" ->第三个结果。


实际的,仍然有效的.load()方法,是.ajax()方法的区别。

.load()的第二个链接(两个不同的链接!仔细看!)中,您可以阅读:

注意:在 jQuery 3.0 之前,事件处理套件也有一个名为 .load() 的方法。旧版本的jQuery根据传递给它的参数集确定要触发的方法。


正如Andre Figueiredo在评论中提到的,请仔细查看jQuery Core 3.0升级指南。在 1.8.3 和 3.2.1 之间发生了许多变化。我首先想到的,因为经常被问到,是.bind().live()

最新更新