从 tutorial ,据说:
preventDefault();
做一件事:它会停止浏览器的默认设置 行为。
我在网上搜索preventDefault()
的示例,我只能在两种情况下看到(链接,表单)我们使用preventDefault()
:阻止提交按钮提交表单并阻止链接跟随网址。
所以,我的问题是:
在其他情况下我们可以使用preventDefault()
?
我怎样才能找到所有浏览器的默认行为?例如如果我点击一个按钮,浏览器的默认行为是什么?
答案 0 :(得分:5)
1.在其他情况下我们可以使用preventDefault()?
实际上任何类型的事件,您都可以使用preventDefault();
停止其默认行为
因此,不仅提交按钮,还有按键,滚动事件,您可以命名它,并且可以防止它发生。或者,如果您想将自己的逻辑添加到默认行为中,请考虑记录事件或您选择的任何内容。
2.我可以找到所有浏览器的默认行为吗?例如如果我点击一个按钮,浏览器的默认行为是什么?
这是什么意思?大多数情况下,默认行为都是隐含的。单击按钮时,会触发onclick事件。单击“提交”按钮时,将提交表单。当窗口滚动时,会触发onscroll事件。
答案 1 :(得分:3)
1)在其他情况下我们可以使用
preventDefault()
?
各种表单字段会更新其状态以响应某些事件,例如单击它时的复选框。如果您preventDefault
上click
,则复选框将恢复为之前检查的状态。有很多行为 - 当按下按键时,滚动窗口时,元素被聚焦时......
2)我怎样才能找到所有浏览器的默认行为?例如如果我点击一个按钮,浏览器的默认行为是什么?
The specification列出了每个元素的“激活行为”。例如,将a
elements所述的激活行为与input[type=checkbox]
所述的激活行为进行比较。 (“预点击激活步骤”也很有趣。)
答案 2 :(得分:1)
DOM中的每个项目都有一些“默认行为”。这适用于每个浏览器大致相同(排除一些例外)。如果您希望执行自己的逻辑而不是默认行为,则可以使用preventDefault()函数。 stopPropagation()函数也是如此,如果你只是希望你自己的逻辑被执行而没有其他任何东西,那么它会阻止事件冒泡事件树。
答案 3 :(得分:0)
您可以在每种类型的事件中使用它,例如:
element.onclick = function(event) {
event = event || window.event
if (event.preventDefault) { // W3C variant
event.preventDefault()
} else { // IE < 9 variant. It doesn't work in older version of IE
event.returnValue = false
}
}
returning false
或使用event.preventDefault
之间的区别是什么?
这是一个有用的link,可以深入解释。