之前写了篇文章《原生javascript实现类似jquery on方法的行为监听》比较浅显,能够简单的使用场景。这里的自定义事件指的是区别javascript默认的与DOM交互的事件,比如click,mouseover,change等,有时候我们需要监听某一行为是否发生,很显然默认的行为不够用,比如一个场景。我们写好了tab切换,点击后请求加载隐藏标签的内容。tab切换是非常常用的一个功能,通常会写成组件,如果每次把请求写在组件里肯定对组件拓展和耦合性有影...
jQuery $(document).ready()和JavaScript onload事件 jQuery $(document).ready()和window.onload 根据ready()方法的API说明http://api.jquery.com/ready/ 这个方法接收一个function类型的参数ready(handler), 方法的作用是: Specify a function to execute when the DOM is fully loaded. 即当DOM加载完毕的时候,执行这个指定的方法. 因为只有document的状态ready之后,对page的操作才是安全的.$(document).ready()仅在...
目录一、DOM0级事件处理二、事件冒泡与事件捕获三、DOM2级事件处理四、IE事件处理程序及跨浏览器支持五、事件对象一、DOM0级事件处理事件,由WEB页面中发生的一些特定行为触发。比如在某个页面元素上按下鼠标左键,按下键盘某个按键,某对象获得或丢失焦点时均会触发对应的事件。JavaScript和HTML的交互就是通过事件来实现的。我们使用事件侦听器对事件进行“注册”,事件发生时便执行相应的代码。DOM0级事件处理程序以其简单、跨浏...
“通过事件机制,可以将类设计为独立的模块,通过事件对外通信,提高了程序的开发效率。” 可以把多个关联但逻辑复杂的操作利用自定义事件的机制灵活地控制好对象之间通过直接方法调用来交互1)对象A直接调用对象B的某个方法,实现交互;直接方法调用本质上也是属于一种特殊的发送与接受消息,它把发送消息和接收消息合并为一个动作完成;方法调用方和被调用方被紧密耦合在一起;因为发送消息和接收消息是在一个动作内完成,所以无...
方法一<!DOCTYPE html> <html> <head><title>Javascript中点击事件方法一</title> </head> <body><button id="btn">click</button><script type="text/javascript">var btn = document.getElementById("btn");btn.onclick=function(){alert("hello world");}</script> </body> </html> 方法二<!DOCTYPE html> <html> <head><title>Javascript中点击事件方法二</title> </head> <body><button id="btn">click</button><script type=...
<style> div { width: 100px; height: 100px; background-color: red; } </style> <script>var div = document.querySelector(‘div’);div.addEventListener(‘click’,function(event){ //event就是一个事件对象,写到我们的侦听函数的括号里面,当做一个形参来看 //事件对象只有了事件才会存在,是系统自动给我们创建的,不需要...
为了让函数只在页面加载完毕后才得到执行,我们会把函数绑定到onload事件上:window.onload = userFunction但如果有两个函数:firstFunction() 和 secondFunction(),都想让它们在页面加载完毕后得到执行,该怎么办?如果这样: window.onload = firstFunciton; window.onload = secondFunction;只有最后一个函数能被执行。由此可得:每个事件处理函数只能绑定一条指令。但我们可以这样做: window.onload = function...
Javascript包含三种模型:内联模型、脚本模型和DOM2模型。1.内联模型(现在基本不用了) 即事件响应处理函数作为一个标签属性来执行,典型的就是onclick()函数;<input type=‘button‘ value=‘按钮‘ onclick="alert(‘点击了!‘)" /> 2.脚本模型 为了解决html与javascript的分离。window.onload=function(){var input=document.getElementByTagName(‘input‘)[0];input.onclick=function(){alert("点击了!");} }PS:也...
function addEvent(el ,type ,fn){if(el.addEventListener){el.addEventListener(type,fn,false);}else if(el.attachEvent){el.attachEvent(‘on‘+type,fn);}else{el[‘on‘+type] = fn;}}function alertIndex(){alert(2);}addEvent(ipt[0],‘click‘,function(){alert(1)});addEvent(ipt[0],‘click‘,alertIndex); 原文:http://www.cnblogs.com/bestsamcn/p/5206833.html
JS为何是单线程的? JavaScript语言的一大特点就是单线程,也就是说,同一个时间只能做一件事。那么,为什么JavaScript不能有多个线程呢?这样能提高效率啊。(在JAVA和c#中的异步均是通过多线程实现的,没有循环队列一说,直接在子线程中完成相关的操作)JavaScript的单线程,与它的用途有关。作为浏览器脚本语言,JavaScript的主要用途是与用户互动,以及操作DOM。这决定了它只能是单线程,否则会带来很复杂的同步问题。比如,假...
初学者经常碰到的,即获取HTML元素集合,循环给元素添加事件。在事件响应函数中(event handler)获取对应的索引。但每次获取的都是最后一次循环的索引。原因是初学者并未理解JavaScript的闭包特性。有个网友问了个问题,如下的html,为什么点击所有的段落p输出都是5,而不是alert出对应的0,1,2,3,4。1. <!DOCTYPE HTML>2. <html>3. <head>4. <meta charset="utf-8" />5. <title>闭包演示</title>6. <style type="text/css"...
事件对象event 如果是事件处理函数绑定的函数,浏览器会默认传递一个参数,event对象。而这个对象会根据触发的事件判断是鼠标事件还是键盘事件 //鼠标事件1 document.onclick=function(evt){ 2 alert(evt); //键盘事件3 }//键盘事件1 document.onkeydown=function(evt){ 2 alert(evt); //键盘事件3 } 由于IE浏览器和W3C浏览器获取event对象有不兼容的地方,所以...
在"JavaScript进阶系列05,事件的执行时机, 使用addEventListener为元素同时注册多个事件,事件参数"中已经有了一个跨浏览器的事件处理机制。现在需要使用这个事件处理机制为页面元素注册事件方法。 □ 点击页面任何部分触发事件 创建一个script1.js文件。(function() {eventUtility.addEvent(document, "click", function(evt) {alert(‘hello‘);}); }()); 页面部分。<head> <meta http-equiv="Content-Type" content="text/html; ...
1、代码<!DOCTYPE html> <html><head><title>textarea输入文字监听</title> </head><body><textarea id=‘text‘ maxlength="50" style="width: 400px; height: 200px;"></textarea><span id=‘sp‘></span><script type="text/javascript">var val = document.getElementById("text");var tar = document.getElementById(‘sp‘);console.log(tar);val.addEventListener("input", function(e) {var t = this.value;console.log(t)...
一、最简单和向后兼容性最好的事件绑定方法是把事件绑定到元素标识的属性。事件属性名称由事件类型外加一个“on”前缀构成。这些属性也被称为事件处理器<INPUT TYPE="text" NAME="first_name" onChange="convertToUpper(this)">或者<INPUT TYPE="text" NAME="first_name" onChange="javascript : js code">或者Dom.onclick = function(e){ //todo }二、js方法绑定事件1、dom对象的attachEvent()方法给该dom元素的事件(该方法仅支...