javascript高手请进

比如我定义一个函数functionone(e){//executesomecode}w3c模型下阻止一个表单的提交动作,为什么是e.preventDefault()e不是... 比如我定义一个函数 function one(e){//execute some code} w3c 模型下阻止一个表单的提交动作,为什么是e.preventDefault()e不是函数的参数吗?又不是事件,不是阻止事件的关联动作吗?按我的理解e是函数的一个参数,怎么会阻止表单提交动作呢? 展开
 我来答
yujianshenbing
2012-08-23 · TA获得超过281个赞
知道答主
回答量:89
采纳率:0%
帮助的人:142万
展开全部
你基础没有学好呀。
e确实是一个参数,但在事件函数中,第一个参数e是浏览器默认传递给函数的,表示事件对象。
例如你绑定了一个mousemove鼠标移动事件,那么如何在事件函数中取得鼠标的位置呢?一般就会:
function move(e) {
var x = e.pageX, y = e.pageY;
}
事件对象中包含了此次事件所包含的上下文信息,例如鼠标位置、按键的ASCII码等,还包含了一些方法,利用这些方法可以对事件进行控制,如你所说的preventDefault()方法,就用来阻止浏览器的默认行为,表单提交的默认行为就是提交操作,因此你调用preventDefault()方法后,表单就不会提交了。
再例如你在鼠标点击事件中使用了e.preventDefault(),如果你点击的是鼠标右键,就不会弹出默认的菜单了。
追问
按你的说法,我注册了一个mouseover事件,当事件发生时,事件中指向的处理函数会用第一个参数为对象?比如addEventListener中的事件处理函数为one(e)实际上浏览器就把e作为了mouseover事件对象?
追答
是的,这个参数时浏览器默认传入的,不需要你手动传,事件对象包含于当前事件相关的信息和或方法。
匿名用户
2012-08-23
展开全部
e事件的状态,使用存在浏览器兼容
function one(e){
e=e || windows.event;
e.preventDefault();
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式