preventDefault() 类似 javascript 中的功能
preventDefault() like functionality in javascript
我已经完成了这个问题
event.preventDefault() vs. return false
但没有找到我的解决方案。实际上,我正在使用 javascript 函数返回上一页,单击
时可以正常工作
<a href="#" onclick="goBack()"><img src="images/backbtn.png"></a>
函数
function goBack(){
window.history.back();
}
当我点击 <a>
时,它在 url 中包含了 #
,我想阻止它。在 jquery 中,我们使用 preventDefault()
来停止元素的默认事件,但是在 javascript 中是否有类似的函数来停止它。
我知道我可以在 href
中使用 javascript:void(0)
这将解决问题,但可能还有许多其他实例,所以我想了解 javascript.[=23 中的函数=]
我试过使用 return false;
但我把它写在上面这样
function goBack(){
return false;
window.history.back();
}
然后它停止执行函数,如果我这样写
function goBack(){
window.history.back();
return false;
}
那么这个 return false;
没有影响。我确定 javascript 中有一些,因为 jquery 是从 javascript.
生成的
如有任何帮助,我们将不胜感激。提前致谢!
据我所知,preventDefault() 也是一个原生 JS 函数,因此您可以在没有 jQuery 的情况下使用它并获得相同的结果。
您可以在此处阅读更多相关信息:MDN: Event.preventDefault()
event.preventDefault() works both in Javasccript and Jquery
如果获取 #
是问题所在并且出于某种原因你真的只想使用 preventDefault()
那么你必须将 event
传递到函数中然后在函数内部使用event.preventDefault()
<a href="#" onclick="goBack(event)"><img src="images/backbtn.png"></a>
然后在您的Javascript中使用这个传递的事件并停止默认行为。
function goBack(event){
event.preventDefault();
window.history.back();
}
preventDefault 存在于 javascript 中,但如果您对类似 jQuery 的解决方案感兴趣,则需要注意兼容性问题。
考虑到与旧浏览器的兼容性问题,另一种解决方案是:
function goBack(evt){
var e = evt || window.event;
if (e !== undefined) {
if (e.preventDefault) {
e.preventDefault();
} else { // IE
e.returnValue = false;
}
}
window.history.back();
}
<a href="#" onclick="goBack(event)"><img src="images/backbtn.png"></a>
为了增加答案,jquery 中的 return false
同时执行 event.preventDefault
和 event.stopPropagation()
来自jquery源代码,jquery.event.dispatch
if ( ret !== undefined ) {
if ( (event.result = ret) === false ) {
event.preventDefault();
event.stopPropagation();
}
}
两个 preventDefault and stopPropagation 在 Javascript 中可用。
对于 IE < 9,event.stopPropagation
可以通过 event.cancelBubble = true
完成,event.preventDefault
可以通过 event.returnValue = false
完成
我已经完成了这个问题
event.preventDefault() vs. return false
但没有找到我的解决方案。实际上,我正在使用 javascript 函数返回上一页,单击
时可以正常工作<a href="#" onclick="goBack()"><img src="images/backbtn.png"></a>
函数
function goBack(){
window.history.back();
}
当我点击 <a>
时,它在 url 中包含了 #
,我想阻止它。在 jquery 中,我们使用 preventDefault()
来停止元素的默认事件,但是在 javascript 中是否有类似的函数来停止它。
我知道我可以在 href
中使用 javascript:void(0)
这将解决问题,但可能还有许多其他实例,所以我想了解 javascript.[=23 中的函数=]
我试过使用 return false;
但我把它写在上面这样
function goBack(){
return false;
window.history.back();
}
然后它停止执行函数,如果我这样写
function goBack(){
window.history.back();
return false;
}
那么这个 return false;
没有影响。我确定 javascript 中有一些,因为 jquery 是从 javascript.
如有任何帮助,我们将不胜感激。提前致谢!
据我所知,preventDefault() 也是一个原生 JS 函数,因此您可以在没有 jQuery 的情况下使用它并获得相同的结果。
您可以在此处阅读更多相关信息:MDN: Event.preventDefault()
event.preventDefault() works both in Javasccript and Jquery
如果获取 #
是问题所在并且出于某种原因你真的只想使用 preventDefault()
那么你必须将 event
传递到函数中然后在函数内部使用event.preventDefault()
<a href="#" onclick="goBack(event)"><img src="images/backbtn.png"></a>
然后在您的Javascript中使用这个传递的事件并停止默认行为。
function goBack(event){
event.preventDefault();
window.history.back();
}
preventDefault 存在于 javascript 中,但如果您对类似 jQuery 的解决方案感兴趣,则需要注意兼容性问题。 考虑到与旧浏览器的兼容性问题,另一种解决方案是:
function goBack(evt){
var e = evt || window.event;
if (e !== undefined) {
if (e.preventDefault) {
e.preventDefault();
} else { // IE
e.returnValue = false;
}
}
window.history.back();
}
<a href="#" onclick="goBack(event)"><img src="images/backbtn.png"></a>
为了增加答案,jquery 中的 return false
同时执行 event.preventDefault
和 event.stopPropagation()
来自jquery源代码,jquery.event.dispatch
if ( ret !== undefined ) {
if ( (event.result = ret) === false ) {
event.preventDefault();
event.stopPropagation();
}
}
两个 preventDefault and stopPropagation 在 Javascript 中可用。
对于 IE < 9,event.stopPropagation
可以通过 event.cancelBubble = true
完成,event.preventDefault
可以通过 event.returnValue = false