• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com专业计算机教程网站
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure
您的位置:首页 > 网页设计 >html5 > 这两个js有冲突吗?

这两个js有冲突吗?

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-03

本文主要包含等相关知识,匿名希望在学习及工作中可以帮助到您

回复内容:

a = 1;
a = 2;

你说运行完 a 是多少? N首先,你这能用CSS完成绝大部分工作
其次,你可以组织一个高一点层次的入口函数去管理你onload到底执行什么,怎么执行,可以通过传入回调函数去扩展你的函数逻辑。
这语言太灵活了,快去感受感受 Window 的 onload 被第二个覆盖掉了。可以尝试 window.addEventListener('load', func...) 通过封装一个通用函数,可以避免这个问题,只要添加事件处理程序的时候使用该函数,window.onload就不会被覆盖。 var old = window.onload; if (typeof window.onload === 'function') { window.onload = function () { old(); handler(); } } else { window.onload = handler; } } 多补点基础知识,多搜索,不要随便提问。你给 onload 赋值了 2 次,前次的值怎么可能还在?

a = 2; alert(a); window.onload = Fun1;
window.onload = Fun2;

很明显,把对象指向了新函数Fun2

utility.js
function addOnloader(newFunc) { if (typeof window.onload !== 'function') { window.onload = newFunc; } else { var previousOnload = window.onload; window.onload = function() { previousOnload(); newFunc(); }; } } window.util.addOnloader = addOnloader; 只能有一个onload 我也来回答一下吧。问题很小白,但是我也是刚从小白出来的(想到自己的痛处,心软了...)。前面的如 @顾轶灵 和@Boring(@不到)说的很明白也很清楚,但是对于小白还是费解了一点。

这个还是基本功的原因,还是希望楼主多看一些基础的书籍,这种问题在论坛里或者QQ群里是基本不会有人回答而且还会被调侃小白或者说你不愿意去学习并且还是不会回答你问题的。我当时却会为这样的问题郁闷上两天。然后再去慢慢的找原因。

所以我想还是补充一下这个问题的答案。

以下是我的理解,不是专业书籍也不是专业语言。望轻喷。

原因:是因为同样的函数你赋值(或者叫做绑定函数)了两次,而这个函数是唯一的(在你这种写法的情况下),所以会后面的赋值覆盖了前面,自然只会执行后面的函数而且不会报错。

也就是说window.onload这个函数你赋值了两次。

这个东西大神也说过了,现成的如:
(截图源于《锋利的jQuery》第二版,如有侵权,请在评论中说明。)

问题回答完了。

现在解释一下 @learnshare 的说法:
概念:页面上任何一个元素的事件都是已经存在的,只是我们用的时候,拿来给我们想调用的事件赋值了一个函数(你上面贴出来的代码)或者绑定了一个函数(就是我现在解释的)。

这两张方式同样可以达到目的,但是还是有一些区别的。比如window.onload事件,如果用绑定的方式写,就不会冲突或者覆盖。

具体到写法上,还有兼容问题,这个我就不写了,你找本书看看吧。 a(); b(); } function a(){ alert('a'); } function b(){ alert('b') } 你可以看下事件。直接使用onload,on等等的话后面定义会将前面覆盖,就像顾轶灵说的一样:a=1;a=2。所以事件绑定一般使用事件监听addeventlisten函数,这样就不会被覆盖。

您可能想查找下面的文章:

相关文章

  • 2018-12-03canvas绘制各种基本图形
  • 2017-08-06HTML5中div、article、section的区别及使用介绍
  • 2018-12-03HTML5重塑Web世界它将如何改变互联网_html5教程技巧
  • 2018-12-03小程序中canvas如何实现图案在线定制的功能
  • 2017-08-06使用HTML5技术开发一个属于自己的超酷颜色选择器
  • 2018-12-03HTML5属性:form表单属性的用法实例
  • 2017-08-06HTML5 History API 实现无刷新跳转
  • 2018-12-03html5时钟实现代码_html5教程技巧
  • 2018-12-03HTML5每日一练之Canvas标签的应用-绘制圆形
  • 2018-12-03HTML5 3D衣服摇摆动画特效_html5教程技巧

文章分类

  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure

最近更新的内容

    • canvas如何绘制时钟?canvas画环形时钟的实现过程
    • Html5 中的 WebSocket通信
    • 如何看待《HTML5 定稿:手机 App 三年内将彻底消失?》
    • CSS3 画基本图形,圆形、椭圆形、三角形等
    • html5+svg学习指南之SVG基础知识
    • HTML5 本地存储和内容按需加载的思路和方法_html5教程技巧
    • HTML5中SVG 2D笔画与填充的详细介绍
    • canvas如何实现github404动态
    • HTML5:使用Canvas实时处理Video
    • 借助HTML5 Canvas来绘制三角形和矩形等多边形的方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有