相关疑难解决方法(0)

event.preventDefault()与return false

当我想在某个事件被触发后阻止其他事件处理程序执行时,我可以使用两种技术之一.我将在示例中使用jQuery,但这也适用于plain-JS:

1. event.preventDefault()

$('a').click(function (e) {
    // custom handling here
    e.preventDefault();
});
Run Code Online (Sandbox Code Playgroud)

2. 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

2891
推荐指数
9
解决办法
81万
查看次数

何时使用PreventDefault()vs Return false?

首先,在JavaScript的事件模型中,您会遇到一个名为事件冒泡的概念(它使事件从子元素传播到父元素).为了避免这种冒泡效应,许多开发人员使用一种名为的事件方法stopPropagation( ).或者,开发人员已开始使用 return false语句来阻止此类传播.现在,有一个名为的术语 preventDefault( ).如名称所示,此方法可防止触发元素的任何默认行为.最佳用例是防止锚标记打开链接.

您可能会遇到一种情况,您希望阻止锚标记打开链接(默认行为)以及阻止事件上升到父级.在这种情况下,你可以用单行来完成它,而不是写两行代码.return false

javascript preventdefault

63
推荐指数
1
解决办法
4万
查看次数

使用Javascript:如果没有选项卡或窗口的历史记录,如何创建一个"返回"链接,将用户带到链接?

编辑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,所以请你的答案解释.谢谢.

html javascript

58
推荐指数
6
解决办法
17万
查看次数

JavaScript'onclick'事件'返回'关键字功能

我是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)

从本质上讲,两者都返回了相同的结果并调用了函数,但还有更多吗?任何帮助非常感谢:).谢谢!

html javascript return onclick

47
推荐指数
2
解决办法
8万
查看次数

javascript返回true或返回false何时以及如何使用它?

所以我看到很多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?

javascript

35
推荐指数
3
解决办法
14万
查看次数

如何在asp.net mvc中调用html.actionlink中的javascript函数?

如何在asp.net mvc中调用html.actionlink中的javascript函数?

我想调用一个java脚本中的方法,但是如何在同一页面的html.actionlink中调用它,这要事先提前

asp.net asp.net-mvc

30
推荐指数
4
解决办法
13万
查看次数

webkit/Chrome history.back(-1)onclick vs href

大家都知道,但我会重复这个问题:

<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使其看起来像链接,应用蓝色,下划线和光标手,但谁想要?

javascript google-chrome onclick href

18
推荐指数
1
解决办法
5万
查看次数

html - 如何防止浏览器打开href中指定的链接?

我目前正在制作文件浏览器.如果用户点击文件的链接,打开一个小窗口并询问选项(如下载和查看).我使用onclick属性完成了这个.如果我点击链接,则执行javascript,但在此之后,href中指定的url会打开.我要做的是:如果你点击链接javascript得到执行,并最终转发你.但是,如果链接被右键单击,则"复制链接位置"仍应可用.我正在考虑通过阻止转发脚本来解决这个问题.因此,如果链接被右键单击,则不会执行javascript,您可以复制链接位置.但是,如果您单击链接,则执行javascript并且不会打开链接.这可能与JavaScript,或有没有任何其他方式来实现这种行为?

html javascript href

12
推荐指数
2
解决办法
3万
查看次数

使用jquery淡出整个页面

所以,当用户访问我网站的另一部分时,我试图淡出页面.在读取堆栈溢出后,我编写了以下代码.但它似乎凌乱/丑陋.是否有适当的方式淡出网页,或者这一切都是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)

html jquery fadeout fading

9
推荐指数
1
解决办法
1万
查看次数

onsubmit ="return false"对Internet Explorer 7/8没有影响(表单仍然提交)

我有一个表单,将由标签的"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

8
推荐指数
3
解决办法
8万
查看次数