此脚本与jquery 3不兼容

时间:2018-01-09 22:06:33

标签: javascript jquery

当我包含jquery 1.8.3时,这个脚本工作正常,但它不适用于jquery 3.2.1我应该改变什么? here来自

的链接
    <!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>

1 个答案:

答案 0 :(得分:1)

使用$(window).on("load",function() {代替$(window).load(function() {

作为绑定load事件的方法,.load()方法自jQuery 1.8以来已被弃用。并在3.0中删除

  

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

参考: Release notes (关键字搜索“加载” - &gt;第3个结果。)


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

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

  

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


在评论中提及Andre Figueiredo时,请密切关注jQuery Core 3.0 Upgrade Guide。许多事情在1.8.3和3.2.1之间发生了变化。我经常提到的第一个问题是.bind().live()