123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895 |
- <!DOCTYPE HTML>
- <html lang="" >
- <head>
- <meta charset="UTF-8">
- <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
- <title>JavaScript事件流 · 代码收集</title>
- <meta http-equiv="X-UA-Compatible" content="IE=edge" />
- <meta name="description" content="">
- <meta name="generator" content="GitBook 3.1.1">
-
-
-
-
- <link rel="stylesheet" href="../../gitbook/style.css">
-
-
-
- <link rel="stylesheet" href="../../gitbook/gitbook-plugin-search-pro/search.css">
-
-
-
- <link rel="stylesheet" href="../../gitbook/gitbook-plugin-highlight/website.css">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- <meta name="HandheldFriendly" content="true"/>
- <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
- <meta name="apple-mobile-web-app-capable" content="yes">
- <meta name="apple-mobile-web-app-status-bar-style" content="black">
- <link rel="apple-touch-icon-precomposed" sizes="152x152" href="../../gitbook/images/apple-touch-icon-precomposed-152.png">
- <link rel="shortcut icon" href="../../gitbook/images/favicon.ico" type="image/x-icon">
-
- <link rel="next" href="../cases/" />
-
-
- <link rel="prev" href="05.html" />
-
- </head>
- <body>
-
- <div class="gb-page-wrapper">
- <header class="gb-page-header">
- <div class="container">
-
-
- <div id="book-search-input" role="search">
- <input type="text" placeholder="Type to search" />
- </div>
- <a href="../.." class="logo">
- <img src="../../gitbook/images/logo/128.png">
- <h1>代码收集</h1>
- </a>
-
-
- <a href="https://github.com/seamong/myBlogs/blob/doc/JavaScript/principle/06.md" target="_blank" class="btn btn-link pull-right hidden-xs">
- <i class="octicon octicon-mark-github"></i> 在GitHub编辑本页
- </a>
- <a href="../../faq.md" class="btn btn-link pull-right hidden-xs">
- F.A.Q
- </a>
- <a href="https://github.com/seamong/myBlogs/README.md" target="_blank" class="btn btn-link pull-right hidden-xs">
- 当前版本0.0.1
- </a>
-
- </div>
- </header>
- <div class="gb-page-body">
- <div class="gb-page-inner">
- <div class="container">
- <div class="row">
- <div class="col-md-3">
-
-
- <div class="panel panel-default">
-
- <div class="panel-heading">
- <h3 class="panel-title">介绍</h3>
- </div>
-
- <div class="list-group">
-
-
-
- <a href="../../" class="list-group-item ">
-
-
-
- 关于本文档
-
- </a>
-
-
-
- </div>
- </div>
-
- <div class="panel panel-default">
-
- <div class="panel-heading">
- <h3 class="panel-title">JavaScript</h3>
- </div>
-
- <div class="list-group">
-
-
-
- <a href="./" class="list-group-item ">
-
-
-
- <i class="octicon octicon-chevron-down"></i>
-
- 原理解析
-
- </a>
-
-
-
-
-
- <a href="0_data_type.html" class="list-group-item ">
-
-
- <i class="octicon octicon-chevron-down" style="opacity: 0"></i>
-
-
- 数据类型
-
- </a>
-
-
-
-
- <a href="001_object.html" class="list-group-item ">
-
-
- <i class="octicon octicon-chevron-down" style="opacity: 0"></i>
-
-
- Object
-
- </a>
-
-
-
-
- <a href="002_DOM.html" class="list-group-item ">
-
-
- <i class="octicon octicon-chevron-down" style="opacity: 0"></i>
-
-
- DOM
-
- </a>
-
-
-
-
- <a href="01.html" class="list-group-item ">
-
-
- <i class="octicon octicon-chevron-down" style="opacity: 0"></i>
-
-
- HTML DOM Document 对象
-
- </a>
-
-
-
-
- <a href="02.html" class="list-group-item ">
-
-
- <i class="octicon octicon-chevron-down" style="opacity: 0"></i>
-
-
- 闭包
-
- </a>
-
-
-
-
- <a href="03.html" class="list-group-item ">
-
-
- <i class="octicon octicon-chevron-down" style="opacity: 0"></i>
-
-
- 写给初级JS程序员的JavaScript闭包(译)
-
- </a>
-
-
-
-
- <a href="04.html" class="list-group-item ">
-
-
- <i class="octicon octicon-chevron-down" style="opacity: 0"></i>
-
-
- 匿名函数和闭包
-
- </a>
-
-
-
-
- <a href="05.html" class="list-group-item ">
-
-
- <i class="octicon octicon-chevron-down" style="opacity: 0"></i>
-
-
- instanceof运算符
-
- </a>
-
-
-
-
- <a href="06.html" class="list-group-item active">
-
-
- <i class="octicon octicon-chevron-down" style="opacity: 0"></i>
-
-
- JavaScript事件流
-
- </a>
-
-
-
-
-
-
- <a href="../cases/" class="list-group-item ">
-
-
-
- <i class="octicon octicon-chevron-right"></i>
-
- 案例解析
-
- </a>
-
-
-
- </div>
- </div>
-
- <div class="panel panel-default">
-
- <div class="panel-heading">
- <h3 class="panel-title">angular</h3>
- </div>
-
- <div class="list-group">
-
-
-
- <a href="../../angular/study_notes/" class="list-group-item ">
-
-
-
- <i class="octicon octicon-chevron-right"></i>
-
- Study notes
-
- </a>
-
-
-
-
- <a href="../../angular/ng.html" class="list-group-item ">
-
-
-
- ng
-
- </a>
-
-
-
- </div>
- </div>
-
- <div class="panel panel-default">
-
- <div class="panel-heading">
- <h3 class="panel-title">css</h3>
- </div>
-
- <div class="list-group">
-
-
-
- <a href="../../css/principle/" class="list-group-item ">
-
-
-
- 原理解析
-
- </a>
-
-
-
-
- <a href="../../css/cases/" class="list-group-item ">
-
-
-
- <i class="octicon octicon-chevron-right"></i>
-
- 案例收集
-
- </a>
-
-
-
- </div>
- </div>
-
- <div class="panel panel-default">
-
- <div class="panel-heading">
- <h3 class="panel-title">vue</h3>
- </div>
-
- <div class="list-group">
-
-
-
- <a href="../../vue/components/" class="list-group-item ">
-
-
-
- <i class="octicon octicon-chevron-right"></i>
-
- components
-
- </a>
-
-
-
-
- <a href="../../vue/router/" class="list-group-item ">
-
-
-
- <i class="octicon octicon-chevron-right"></i>
-
- router
-
- </a>
-
-
-
-
- <a href="../../vue/vuex/" class="list-group-item ">
-
-
-
- VUE
-
- </a>
-
-
-
- </div>
- </div>
-
- <div class="panel panel-default">
-
- <div class="panel-heading">
- <h3 class="panel-title">ubuntu</h3>
- </div>
-
- <div class="list-group">
-
-
-
- <a href="../../ubuntu/serves/" class="list-group-item ">
-
-
-
- <i class="octicon octicon-chevron-right"></i>
-
- 服务器生存指南
-
- </a>
-
-
-
-
- <a href="../../ubuntu/instruction.html" class="list-group-item ">
-
-
-
- 常用指令
-
- </a>
-
-
-
- </div>
- </div>
-
- <div class="panel panel-default">
-
- <div class="panel-heading">
- <h3 class="panel-title">GIT</h3>
- </div>
-
- <div class="list-group">
-
-
-
- <a href="../../git/git.html" class="list-group-item ">
-
-
-
- git 命令
-
- </a>
-
-
-
- </div>
- </div>
-
- <div class="panel panel-default">
-
- <div class="list-group">
-
-
-
- <a href="../../other/faq.html" class="list-group-item ">
-
-
-
- FAQ
-
- </a>
-
-
-
-
- <a href="../../other/examples.html" class="list-group-item ">
-
-
-
- Examples
-
- </a>
-
-
-
- </div>
- </div>
-
- </div>
- <div class="col-md-9">
-
- <div id="book-search-results">
- <div class="search-noresults">
-
-
- <div class="gb-markdown book-page-inner">
- <h1 id="javascript事件流">JavaScript事件流</h1>
- <h2 id="定义">定义</h2>
- <blockquote>
- <p>申明:本文仅限私人学习之用---- <a href="http://www.cnblogs.com/blackwood/archive/2013/03/14/2959195.html" target="_blank">原文</a>;</p>
- <p>下图展示了完整的js事件流</p>
- </blockquote>
- <p><img src="http://images.cnblogs.com/cnblogs_com/blackwood/416364/o_eventpic.jpg"></p>
- <h4 id="捕获阶段:documentelementhtmlelementbodyelementdiv">捕获阶段:Document==>ElementHtml==>ElementBody==>ElementDiv</h4>
- <h4 id="冒泡阶段:elementdivelementbodyelementhtmldocument">冒泡阶段:ElementDiv==>ElementBody==>ElementHtml==>Document</h4>
- <h2 id="分析">分析</h2>
- <blockquote>
- <h4 id="捕获阶段:">捕获阶段:</h4>
- <p>document对象首先接收到click事件,然后事件沿DOM树依次向下,一直传播到事件的实际目标。<br></p>
- <h4 id="冒泡阶段:">冒泡阶段:</h4>
- <p>IE的事件流叫做事件冒泡(event bubbling),即事件开始时由最具体的元素(文档中嵌套层次最深的那个节点)接收,然后逐级向上传播到较为不具体的节点( 文档)。</p>
- </blockquote>
- <h2 id="事件处理程序">事件处理程序</h2>
- <h3 id="html事件处理程序">html事件处理程序</h3>
- <blockquote>
- <h4 id="事件对象:">事件对象:</h4>
- <pre><code>event:不是自己定义的,是給元素綁定事件之后,自动生成的局部变量,表示事件对象。
- this:在函數內部,等于事件的目标元素;在函數內部可以像访问局部变量一样访问document及该元素本身的成员。
- </code></pre><pre><code class="lang-js"><span class="hljs-comment">//如果当前元素是一個表单的輸入元素,则作用域中还会包含访问表单元素(父元素)的入口</span>
- (<span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params"></span>)</span>{
- <span class="hljs-keyword">with</span>(<span class="hljs-built_in">document</span>){
- <span class="hljs-keyword">with</span>(<span class="hljs-keyword">this</span>.from){
- <span class="hljs-comment">//元素属性值</span>
- }
- }
- })()
- </code></pre>
- </blockquote>
- <h4 id="缺点:">缺点:</h4>
- <pre><code>1.时差问题,用戶可能会在HTML元素一出現在页面上时,就触发相应事件,但当时该事件有可能不具备执行条件。
- 2.这样扩展事件处理程序的作用域链在不同浏览器中会导致不同结果。不同JavaScript引擎遵循的标识符解析规则略有差异,很可能会在访问非限定对象成员时出错。(高耦合)
- </code></pre><h3 id="dom0级事件处理程序">DOM0级事件处理程序</h3>
- <blockquote>
- <p>通过js指定事件处理程序的传统方式,就是将一个函数赋值给一个事件处理程序属性</p>
- <pre><code class="lang-js"><span class="hljs-comment">//创建</span>
- <span class="hljs-keyword">var</span> btn = <span class="hljs-built_in">document</span>.getElementById(<span class="hljs-string">"myBtn"</span>);
- btn.onclick=<span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params"></span>)</span>{
- alert(<span class="hljs-string">"Clicked"</span>);
- }
- <span class="hljs-comment">//删除</span>
- btn.onclick=<span class="hljs-literal">null</span>;
- </code></pre>
- </blockquote>
- <h3 id="dom2级事件处理程序">DOM2级事件处理程序</h3>
- <h4 id="addeventlistener">addEventListener()</h4>
- <blockquote>
- <p>为指定事件添加处理程序</p>
- <pre><code class="lang-js"><span class="hljs-comment">// 下面这段程序中因为添加了false,所以该事件会在冒泡阶段被触发</span>
- <span class="hljs-keyword">var</span> btn=<span class="hljs-built_in">document</span>.getElementById(<span class="hljs-string">'myBtn'</span>);
- btn.addEventListener(<span class="hljs-string">"click"</span>,<span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params"></span>)</span>{
- alert(<span class="hljs-string">"this.id"</span>);
- },<span class="hljs-literal">false</span>);
- <span class="hljs-comment">// 使用 DOM2 级方法添加事件处理程序的主要好处是可以添加多个事件处理程序。</span>
- <span class="hljs-comment">// 这两个事件处理程序会按照添加它们的顺序触发,因此首先会显示元素的ID,其次会显示" Hello world!" 消息。</span>
- <span class="hljs-keyword">var</span> btn=<span class="hljs-built_in">document</span>.getElementById(<span class="hljs-string">"myBtn"</span>);
- btn.addEventListener(<span class="hljs-string">"click"</span>,<span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params"></span>)</span>{
- alert(<span class="hljs-string">"this.id"</span>)
- },<span class="hljs-literal">false</span>);
- btn.addEventListener(<span class="hljs-string">"click"</span>,<span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params"></span>)</span>{
- alert(<span class="hljs-string">"Hello World!"</span>)
- },<span class="hljs-literal">false</span>);
- </code></pre>
- </blockquote>
- <h4 id="removeeventlistener">removeEventListener()</h4>
- <blockquote>
- <p>删除事件处理程序</p>
- <pre><code class="lang-js"><span class="hljs-comment">// 下面这个函数,虽然看起来合乎逻辑,但是removeEventListener清除的程序与addEventListener绑定的事件不是同一个</span>
- <span class="hljs-keyword">var</span> btn=<span class="hljs-built_in">document</span>.getElementById(<span class="hljs-string">"myBtn"</span>);
- btn.addEventListener(<span class="hljs-string">"click"</span>,<span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params"></span>)</span>{
- alert(<span class="hljs-string">"Hello World!"</span>)
- },<span class="hljs-literal">false</span>);
- btn.removeEventListener(<span class="hljs-string">"click"</span>,<span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params"></span>)</span>{
- alert(<span class="hljs-string">"Hello World!"</span>);
- })
- <span class="hljs-comment">// 我们在这里用另一个例子来表现,这个例子中绑定事件程序与删除事件程序使用了相同的函数</span>
- <span class="hljs-keyword">var</span> btn=<span class="hljs-built_in">document</span>.getElementById(<span class="hljs-string">"myBtn"</span>);
- <span class="hljs-keyword">var</span> handler = <span class="hljs-function"><span class="hljs-keyword">function</span> (<span class="hljs-params"></span>) </span>{
- alert(<span class="hljs-keyword">this</span>.id);
- }
- btn.addEventListener(<span class="hljs-string">"click"</span>,handler,<span class="hljs-literal">false</span>);
- btn.removeEventListener(<span class="hljs-string">"click"</span>,handler,<span class="hljs-literal">false</span>);
- </code></pre>
- </blockquote>
- <h3 id="建议">建议</h3>
- <blockquote>
- <p>大多数情况下,都是将事件处理程序添加到事件流的冒泡阶段,这样可以最大限度地兼容各种浏览器。最好只在需要在事件到达目标之前截获它的时候将事件处理程序添加到捕获阶段。如果不是特别需要,我们不建议在事件捕获阶段注册事件处理程序。</p>
- </blockquote>
- <h2 id="ie事件处理程序">IE事件处理程序</h2>
- <blockquote>
- <p>IE实现了与DOM中类似的两个方法:attachEvent()和detachEvent()。这两个方法接受相同的两个参数:事件处理程序名称与事件处理程序函数。由于IE8及更早版本只支持事件冒泡,所以通过attachEvent()添加的事件处理程序都会被添加到冒泡阶段。</p>
- </blockquote>
- <h3 id="attachevent">attachEvent()</h3>
- <pre><code class="lang-js"><span class="hljs-comment">// 下面这个例子中 事件绑定 时 ,第一个参数用的是 onclick,IE使用attachEvent()与使用DOM0方法的主要区别在于处理程序的作用域。</span>
- <span class="hljs-keyword">var</span> btn=<span class="hljs-built_in">document</span>.getElementById(<span class="hljs-string">"MyBtn"</span>);
- btn.attachEvent(<span class="hljs-string">"onclick"</span>,<span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params"></span>)</span>{
- alert(<span class="hljs-string">"Clicked"</span>);
- })
- <span class="hljs-comment">// 在DOM0级方法的情况下,事件处理程序会在其所属元素的作用域内运行;在使用attachEvent()方法的情况下,事件处理程序会在 全局作用域中运行,因此this等于windows。</span>
- <span class="hljs-keyword">var</span> btn =<span class="hljs-built_in">document</span>.getElementById(<span class="hljs-string">"myBtn"</span>);
- btn.attachEvent(<span class="hljs-string">"onclick"</span>,<span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params"></span>)</span>{
- alert(<span class="hljs-keyword">this</span>===<span class="hljs-built_in">window</span>);<span class="hljs-comment">//true</span>
- })
- <span class="hljs-comment">// 添加多个元素的方法</span>
- <span class="hljs-keyword">var</span> btn = <span class="hljs-built_in">document</span>.getElementById(<span class="hljs-string">"myBtn"</span>);
- <span class="hljs-keyword">var</span> handler=<span class="hljs-function"><span class="hljs-keyword">function</span> (<span class="hljs-params"></span>)</span>{
- alert(<span class="hljs-string">"Hello World!"</span>)
- }
- <span class="hljs-keyword">var</span> hello=<span class="hljs-function"><span class="hljs-keyword">function</span> (<span class="hljs-params"></span>)</span>{
- alert(<span class="hljs-string">"hello"</span>);
- }
- btn.attachEvent(<span class="hljs-string">"onclick"</span>,handler);
- btn.attachEvent(<span class="hljs-string">"onclick"</span>,hello);
- <span class="hljs-comment">// 执行顺序:多事件绑定,执行顺序是以倒序的方式执行的。</span>
- <span class="hljs-comment">// hello</span>
- <span class="hljs-comment">// Hello World!</span>
- </code></pre>
- <h3 id="detachevent">detachEvent()</h3>
- <pre><code class="lang-js"><span class="hljs-comment">// 移除attachEvent添加的事件处理程序程序</span>
- <span class="hljs-keyword">var</span> btn = <span class="hljs-built_in">document</span>.getElementById(<span class="hljs-string">"myBtn"</span>);
- <span class="hljs-keyword">var</span> handler = <span class="hljs-function"><span class="hljs-keyword">function</span> (<span class="hljs-params"></span>) </span>{
- alert(<span class="hljs-string">'Clicked'</span>);
- }
- btn.attachEvent(<span class="hljs-string">"onclick"</span>,handler);
- btn.detachEvent(<span class="hljs-string">"onclick"</span>,handler);
- </code></pre>
- <h2 id="跨浏览器的事件处理程序">跨浏览器的事件处理程序</h2>
- <h3 id="addhandlerremovehandler">addHandler()|removeHandler()</h3>
- <blockquote>
- <p>这2个方法属于一个名叫EventUtil的对象<br>
- 参数:要操作的元素 | 事件名称 | 事件处理接受程序
- ```js
- // 解析:首先判断是否存在DOM2级方法,如果存在==>传入事件类型,事件处理程序函数,和第三个参数方法false(表示冒泡阶段),如果存在的是IE的方法,就采用第二种方法,为了兼容IE8及跟早的版本,此时的时间类型必须加上"on"前缀。最后一种是DOm0级方法(现代浏览器,一般不会执行这里的代码),使用方括号语法将属性名指定为事件处理程序或者将属性设置为null;</p>
- </blockquote>
- <p>var EventUtil={
- addHandler:function(element,type,handler){
- if(element.addEventListener){
- element.addEventListener(type,handler,false);
- }else if(element.attachEvent){
- element.attachEvent("on" + type,handler);
- }else {
- element["on" + type] = handler;
- }
- },
- removeHandler:function(element,type,handler){
- if(element.removeEventListener){
- element.removeEventListener(element,type,false);
- }else if(element.detachEvent){
- element.detachEvent("on"+type,handler);
- }else{
- element["on"+type]=null;
- }
- }
- }
- // 实例:使用EventUtil对象==>绑定click事件并删除click事件
- // 分析:由于addHandler和removeHandler没有考虑到所有浏览器的问题,例如IE浏览器中的作用域的问题,所以我们往往只用作添加处理程序或者移除处理程序。
- //提示:只DoM0级的浏览器已经不多了,所以需要注意的问题不是很多
- var btn = document.getElementById("myBtn");
- var handler = function (){
- alert("你好!");
- }
- EventUtil.addHandler(btn,"click",handler);
- EventUtil.removeHandler(btn,"click",handler);
- ```</p>
- </div>
-
- <hr>
- <div class="btn-group btn-group-justified">
-
- <a class="btn" href="05.html"><b>上一页:</b> instanceof运算符</a>
-
-
- <a class="btn" href="../cases/"><b>下一页:</b> 案例解析</a>
-
- </div>
-
- </div>
- <div class="search-results">
- <div class="has-results">
-
- <h1 class="search-results-title"><span class='search-results-count'></span> results matching "<span class='search-query'></span>"</h1>
- <ul class="search-results-list"></ul>
-
- </div>
- <div class="no-results">
-
- <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
-
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- <footer class="gb-page-footer">
- <div class="container">
- <ul class="menu">
- <li class="pull-right">
- <span class="service-info">Copyright GitBook 2018</span>
- </li>
- <li>
- <a href="#">Return to the top</a>
- </li>
- <li>
- <a href="#">Updated May 30th 18</a>
- </li>
- </ul>
- </div>
- </footer>
- </div>
- <script src="../../gitbook/gitbook.js"></script>
-
- <script src="../../gitbook/gitbook-plugin-search-pro/jquery.mark.min.js"></script>
-
-
- <script src="../../gitbook/gitbook-plugin-search-pro/search.js"></script>
-
-
- <script src="../../gitbook/gitbook-plugin-lunr/lunr.min.js"></script>
-
-
- <script src="../../gitbook/gitbook-plugin-lunr/search-lunr.js"></script>
-
- <script>
- (function() {
- gitbook.page.hasChanged({"page":{"title":"JavaScript事件流","level":"2.1.9","depth":2,"next":{"title":"案例解析","level":"2.2","depth":1,"path":"JavaScript/cases/README.md","ref":"JavaScript/cases/README.md","articles":[{"title":"动态替换图片","level":"2.2.1","depth":2,"path":"JavaScript/cases/0.md","ref":"JavaScript/cases/0.md","articles":[]},{"title":"原生Ajax学习","level":"2.2.2","depth":2,"path":"JavaScript/cases/01.md","ref":"JavaScript/cases/01.md","articles":[]},{"title":"React/React Native 的ES5 ES6写法对照表","level":"2.2.3","depth":2,"path":"JavaScript/cases/02.md","ref":"JavaScript/cases/02.md","articles":[]},{"title":"战舰游戏","level":"2.2.4","depth":2,"path":"JavaScript/cases/03.md","ref":"JavaScript/cases/03.md","articles":[]},{"title":"正则截取指定字符串","level":"2.2.5","depth":2,"path":"JavaScript/cases/04.md","ref":"JavaScript/cases/04.md","articles":[]},{"title":"常用功能收集","level":"2.2.6","depth":2,"path":"JavaScript/cases/05.md","ref":"JavaScript/cases/05.md","articles":[]}]},"previous":{"title":"instanceof运算符","level":"2.1.8","depth":2,"path":"JavaScript/principle/05.md","ref":"JavaScript/principle/05.md","articles":[]},"dir":"ltr"},"config":{"plugins":["theme-official@2.1.1","-sharing","-fontsettings","sitemap","-search","search-pro"],"root":"./docs/","styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"sitemap":{"hostname":"https://blog.honghaitao.net/"},"search-pro":{"cutWordLib":"nodejieba","defineWord":["小需求","基础建设"]},"highlight":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"theme-official":{},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{"version":"0.0.1"},"title":"代码收集","gitbook":"3.1.1"},"file":{"path":"JavaScript/principle/06.md","mtime":"2018-05-30T08:23:34.364Z","type":"markdown"},"gitbook":{"version":"3.1.1","time":"2018-05-30T08:55:08.693Z"},"basePath":"../..","book":{"language":""}});
- })();
- </script>
-
- </body>
- </html>
|