javascript高手请进
比如我定义一个函数functionone(e){//executesomecode}w3c模型下阻止一个表单的提交动作,为什么是e.preventDefault()e不是...
比如我定义一个函数 function one(e){//execute some code} w3c 模型下阻止一个表单的提交动作,为什么是e.preventDefault()e不是函数的参数吗?又不是事件,不是阻止事件的关联动作吗?按我的理解e是函数的一个参数,怎么会阻止表单提交动作呢?
展开
2个回答
展开全部
你基础没有学好呀。
e确实是一个参数,但在事件函数中,第一个参数e是浏览器默认传递给函数的,表示事件对象。
例如你绑定了一个mousemove鼠标移动事件,那么如何在事件函数中取得鼠标的位置呢?一般就会:
function move(e) {
var x = e.pageX, y = e.pageY;
}
事件对象中包含了此次事件所包含的上下文信息,例如鼠标位置、按键的ASCII码等,还包含了一些方法,利用这些方法可以对事件进行控制,如你所说的preventDefault()方法,就用来阻止浏览器的默认行为,表单提交的默认行为就是提交操作,因此你调用preventDefault()方法后,表单就不会提交了。
再例如你在鼠标点击事件中使用了e.preventDefault(),如果你点击的是鼠标右键,就不会弹出默认的菜单了。
e确实是一个参数,但在事件函数中,第一个参数e是浏览器默认传递给函数的,表示事件对象。
例如你绑定了一个mousemove鼠标移动事件,那么如何在事件函数中取得鼠标的位置呢?一般就会:
function move(e) {
var x = e.pageX, y = e.pageY;
}
事件对象中包含了此次事件所包含的上下文信息,例如鼠标位置、按键的ASCII码等,还包含了一些方法,利用这些方法可以对事件进行控制,如你所说的preventDefault()方法,就用来阻止浏览器的默认行为,表单提交的默认行为就是提交操作,因此你调用preventDefault()方法后,表单就不会提交了。
再例如你在鼠标点击事件中使用了e.preventDefault(),如果你点击的是鼠标右键,就不会弹出默认的菜单了。
追问
按你的说法,我注册了一个mouseover事件,当事件发生时,事件中指向的处理函数会用第一个参数为对象?比如addEventListener中的事件处理函数为one(e)实际上浏览器就把e作为了mouseover事件对象?
追答
是的,这个参数时浏览器默认传入的,不需要你手动传,事件对象包含于当前事件相关的信息和或方法。
网易云信
2023-12-06 广告
2023-12-06 广告
很高兴能回答您的问题。以下是一段针对“一对一消息组件”的描述,字数在200字左右:该组件支持用户之间的私密交流,让沟通更加直接和高效。通过它,您可以向特定对象发送消息,并实时查看消息状态,包括对方是否已读或未读。同时,该组件还支持富文本消息...
点击进入详情页
本回答由网易云信提供
2012-08-23
展开全部
e事件的状态,使用存在浏览器兼容
function one(e){
e=e || windows.event;
e.preventDefault();
}
function one(e){
e=e || windows.event;
e.preventDefault();
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询