当我想在某个事件被触发后阻止其他事件处理程序执行时,我可以使用两种技术之一.我将在示例中使用jQuery,但这也适用于plain-JS:
event.preventDefault()$('a').click(function (e) {
// custom handling here
e.preventDefault();
});
Run Code Online (Sandbox Code Playgroud)
return false$('a').click(function () {
// custom handling here
return false;
});
Run Code Online (Sandbox Code Playgroud)
这两种停止事件传播的方法之间有什么显着差异吗?
对我来说,return false;比执行方法更简单,更短并且可能更不容易出错.使用该方法,您必须记住正确的套管,括号等.
另外,我必须在回调中定义第一个参数才能调用该方法.也许,有一些原因可以解释为什么我应该避免这样做并使用preventDefault呢?有什么更好的方法?
javascript jquery event-handling event-propagation dom-events
首先,在JavaScript的事件模型中,您会遇到一个名为事件冒泡的概念(它使事件从子元素传播到父元素).为了避免这种冒泡效应,许多开发人员使用一种名为的事件方法stopPropagation( ).或者,开发人员已开始使用
return false语句来阻止此类传播.现在,有一个名为的术语
preventDefault( ).如名称所示,此方法可防止触发元素的任何默认行为.最佳用例是防止锚标记打开链接.
您可能会遇到一种情况,您希望阻止锚标记打开链接(默认行为)以及阻止事件上升到父级.在这种情况下,你可以用单行来完成它,而不是写两行代码.return false
编辑2:答案似乎都没有用.甚至不是我之前标记为这个问题的答案.任何帮助表示赞赏.谢谢.
首先,我搜索了一个关于创建"返回"链接的方法,该链接允许用户返回上一页,这有两种方法:
<a href="javascript:history.go(-1)">[Go Back]</a>
Run Code Online (Sandbox Code Playgroud)
和...
<a href="#" onclick="history.go(-1);return false;">[Go Back]</a>
Run Code Online (Sandbox Code Playgroud)
这两个中的哪一个是更好的选择?为什么?(另外,请介绍一下浏览器兼容性.)
这是问题的一半.现在,如果我的第一页是用户访问的,那么"返回"链接将不起作用,对吧?(因为窗口或标签没有预先存在的历史记录.)在这种情况下,我希望链接回退并将用户带到http://example.com.
即如果历史存在,则用户将被带到上一页,如果不存在,则将其带到http://example.com.
我怎么做?希望有人能提供帮助.
编辑:请注意我不懂JavaScript,所以请你的答案解释.谢谢.
我是javascript的新手,偶然发现了return关键字.基本上,这两个陈述的区别是什么?
<input type="checkbox" onclick="doAlert()" />
Run Code Online (Sandbox Code Playgroud)
VS
<input type="checkbox" onclick="return doAlert();" />
Run Code Online (Sandbox Code Playgroud)
从本质上讲,两者都返回了相同的结果并调用了函数,但还有更多吗?任何帮助非常感谢:).谢谢!
所以我看到很多JavaScript代码(我自己编写了一些代码)
<script>
function CallSomeFunction()
{
//function body
}
$(document).ready(function () {
callSomeFunction();
return false;
});
Run Code Online (Sandbox Code Playgroud)
而在其他时间:
callSomeFunction();
return true;
Run Code Online (Sandbox Code Playgroud)
基本上我从来没有理解JavaScript中函数调用后返回true/false的真实用法.我只是假设它有某种魔力我需要我的功能才能运行良好.
所以,我想知道为什么?为什么我们在调用JavaScript函数后使用return true或return false?
如何在asp.net mvc中调用html.actionlink中的javascript函数?
我想调用一个java脚本中的方法,但是如何在同一页面的html.actionlink中调用它,这要事先提前
大家都知道,但我会重复这个问题:
<a href="#" onClick="history.go(-1)">Back</a>
Run Code Online (Sandbox Code Playgroud)
无法在基于WebKit的浏览器(Chrome,Safari,Mxthon等)中使用
另一种不起作用的方法(应该工作)是:
<a href="#" onclick="javascript:window.history.back(-1);">Back</a>
Run Code Online (Sandbox Code Playgroud)
你可以这样做 - 工作!(但是在url提示中显示了JS)
<a href="javascript:window.history.back(-1);">Back</a>
Run Code Online (Sandbox Code Playgroud)
要在onclick事件中使用JS,你可以这样做(有效,但请参阅下面的评论):
<a onclick="javascript:window.history.back(-1);">Please try again</a>
Run Code Online (Sandbox Code Playgroud)
缺少href将使其工作,但它不会显示为可点击链接,您可以应用CSS使其看起来像链接,应用蓝色,下划线和光标手,但谁想要?
我目前正在制作文件浏览器.如果用户点击文件的链接,打开一个小窗口并询问选项(如下载和查看).我使用onclick属性完成了这个.如果我点击链接,则执行javascript,但在此之后,href中指定的url会打开.我要做的是:如果你点击链接javascript得到执行,并最终转发你.但是,如果链接被右键单击,则"复制链接位置"仍应可用.我正在考虑通过阻止转发脚本来解决这个问题.因此,如果链接被右键单击,则不会执行javascript,您可以复制链接位置.但是,如果您单击链接,则执行javascript并且不会打开链接.这可能与JavaScript,或有没有任何其他方式来实现这种行为?
所以,当用户访问我网站的另一部分时,我试图淡出页面.在读取堆栈溢出后,我编写了以下代码.但它似乎凌乱/丑陋.是否有适当的方式淡出网页,或者这一切都是hacky?似乎(目前)就像我的页面在它有机会褪色之前被抛弃了.
<link rel="stylesheet" href="http://www.catlard.com/styles/body.css" type="text/css"/>
<link rel="icon" href="http://www.catlard.com/caticon.ico" />
<link rel="shortcut icon" href="http://www.catlard.com/caticon.ico?v=2" />
<script src="http://code.jquery.com/jquery-latest.min.js" charset="utf-8"> </script>
<script type="text/javascript">
$(document).ready( function(){
$("html").hide();
$("html").delay(250).fadeIn();
$(window).unload(function () {
$("html").fadeOut();
});
});
</script>
Run Code Online (Sandbox Code Playgroud) 我有一个表单,将由标签的"onsubmit"中触发的javascript代码提交.适用于所有浏览器 - 但不适用于IE7/IE8.
我能做什么?
<form action="/dosomething.htm" method="GET" onsubmit="submitmyform();return false">
[...]
<input type="submit" value="Go">
</form>
Run Code Online (Sandbox Code Playgroud) javascript forms onsubmit internet-explorer-8 internet-explorer-7
javascript ×8
html ×4
href ×2
jquery ×2
onclick ×2
asp.net ×1
asp.net-mvc ×1
dom-events ×1
fadeout ×1
fading ×1
forms ×1
onsubmit ×1
return ×1