首页   seo优化   上海网站优化   上海网站推广   排名优化   上海百度优化   网络动态   联系我们
 
  热点文章
·数字滚动灯箱,滚动灯箱电机,数字
·二手徐工装载机,二手压路机,上海
·上海空调维修,上海空调安装,中央
·医姿贝儿-医姿贝尔-医学级美容护
·seo关于外链群发软件
·上海万宝龙代理,派克笔代理,上海
·进口冲床维修,冲床周边设备,超负
·中联电话交换机,NEC电话交换机,
·上海惠普激光打印机维修,EPSON激
·废海绵边角料.普通海绵边角料
·油漆厚度检测仪,涂镀层测厚仪,振
·怎么让网站短时间优化到首页
·超高压电磁阀-高温电磁阀
·万耐特Valenite刀具,斯特拉姆Ste
·二辊卷板机,三辊卷板机,四辊卷板
·不锈钢平板,彩色不锈钢板,不锈钢
·我是怎么做伪原创文章的
·关于网站营销
·砸钱营销是在浪费
·如何做家庭装修类型的网站推广
  相关文章
·网站为什么老是在百度与变动
·搜索引擎真的没搞鬼
·浅谈主机和SEO效果
·揭秘微信推广运营之道:日均互动
·上海空调维修,上海空调安装,中央
·超高压电磁阀-高温电磁阀
·上海电话交换机维修,上海程控电
·上海运输,上海托运,上海货物运输
·漏电火灾报警系统,电气火灾监控
·上海万宝龙代理,派克笔代理,上海
·移动厕所租赁,环保厕所租赁,生化
·南京流水线|南京生产线|南京皮带
·上海定制T恤,上海订制T恤,上海T
·钢质复合防火卷帘门,防爆防火卷
·高频加热机,高频感应加热设备,中
·双壁热缩套管,PVC绝缘套管,热缩
·中央空调安装,上海中央空调移机,
·二辊卷板机,三辊卷板机,四辊卷板
·矿用阻燃通信电缆,矿用阻燃控制
·中联电话交换机,NEC电话交换机,

  相关信息
上海促销服,上海工作服,上海广告衫
上海百度开户,上海百度竞价,包年
进口电缆,进口电线,热电偶电缆
百度左侧优化,关键词优化,搜索引擎优化
百度网页快照优化,百度快照优化
上海空调维修,上海空调安装,中央空调安装
上海网站优化,上海百度优化,百度推广
百度左侧包年,百度左侧排名,包年推广
上海百度优化,上海百度推广,百度排名
  当前位置:主页>网站优化>产品

把这个代码的执行范围再次放大。要求监听页面上所有的点击情况,产品提了一个需求。一个同学接到需求,开心的document上用了事件代理,向服务端发送了数据,回头数据一统计,似乎少了什么。回头一看,有人在a标签的点击事件中用了halt

其实这就是本文想传递的信息。当你使用halt时,大多数情况下。其实真正需要的e.preventDefault写通用的组件时候这个问题尤其突出。

上面的代码看起来像是很好的完成了交给它工作。但这么做到底有什么不对呢?浏览器不会再将我重定向到href中的链接。

来看看浏览器中事件中的几个概念解释有什么不对前。

浏览器默认行为

当我点击某一个链接的时候。表单中按回车,浏览器会直接跳转。表单会自动提交,这些都是浏览器的默认行为。

Javascript事件传达的机制

什么是事件冒泡?

比如点击了一个按钮。同时该事件将会传播到所有父级元素中被触发。a->div->body->document->window这一过程被称为事件冒泡。事件冒泡是从子级元素到父级元素。这个元素上的事件被触发。

blurfocuload和unload不能像其它事件一样冒泡注意:不是所有的事件都能冒泡。

什么是事件捕获?

事件捕获是从父级元素到子级元素。和事件冒泡恰恰相反。

什么是事件目标?

也就是上面说的简单的说也就是事件开始的那个元素。a

 

不同浏览器下的事件模型

支持W3C规范的浏览器:先捕获在冒泡。添加事件时用addEventListeneventfnuseCaptur方法。为true则采用事件捕获,基中第3个参数useCaptur一个Boolean值。为fal则采用事件冒泡。

不兼容W3C浏览器(IEIE只支持事件冒泡。不过提供了attachEv方法来处理事件。也不支持addEventListen函数。

否有感觉什么地方不对?没有?那再看看下文。看完上文。

halt底做了什么?

实际上做了2件事情:当你每次调用”halt时候。

e.preventDefault;//阻止浏览器执行默认行为

e.stopPropag;//取消事件冒泡

preventDefault和stopPropag翻译成原生js后

functionpreventDefaulte{

则这是一个非IE浏览器//如果提供了事件对象。

ife&&e.preventDefault{

//阻止默认浏览器动作(W3C

e.preventDefault;

}els{

//IE中阻止函数器默认动作的方式

window.event.returnValu=false;

}

returnfalse;

}

functstopPropage{

则这是一个非IE浏览器//如果提供了事件对象。

ife&&e.stopPropag{

//因此它支持W3CstopPropag方法

e.stopPropag;

}els{

需要使用IE方式来取消事件冒泡//否则。

window.event.cancelBubbl=true;

}

returnfalse;

}

不是吧。不需要取消事件冒泡。写最开始的代码只是想阻止浏览器的默认行为。

啪啪…但是这样写也没有什么问题啊!嘴硬。

确实。这样的代码没有任何问题,大多数情况下。那如果我把这段代码放大到一个大环境中,会出现什么状况

<divclass=post>

<h2><ahref=http://etao.com/page1>Page1</a></h2>

<divclass=content>

Teasertext..

</div>

</div>

<divclass=post>

<h2><ahref=http://etao.com/page2>Page2</a></h2>

<divclass=content> 交易信息网 www.91xin.com

Teasertext..

</div>

</div>

将文章动态载入到div.cont中(也就是doSomeTh做的事情)现在假设我想要在用户点击文章标题时。

哈哈:上文的js代码也还是会执行啊(年轻人太急)

顺着这个思路继续。给它加上一个activ类,如果我想要在用户点击了一个div.post元素(或者任何一个它子元素)时。就需要给div.post绑定click

varpost=$div.post;

posts.onclickfunction{

posts.removeClassactiv;

$thi.addClassactiv;

};

因为你点击a时候取消了事件冒泡。这个代码就会有时候执行有时候不执行。


上一篇:网站的杀手锏-风格   下一篇:做网站优化要做好前期准备工作

上海百度优化,上海百度优化,百度优化,网站优化 搜索引擎优化专家:六客户 交易信息网 http://www.91xin.com
总机:021-64512311 传真:021-60911210 24小时热线:13817209995
QQ:47379877QQ:147877134Msn:chenlltop@hotmail.com


电话:021-64512311 传真:021-60911210 地址:上海市漕溪路258弄航星商务楼2号304