Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我如何创建一个空的HTML锚,使页面不';";“跳起来”;我什么时候点击它?_Javascript_Jquery_Anchor - Fatal编程技术网

Javascript 我如何创建一个空的HTML锚,使页面不';";“跳起来”;我什么时候点击它?

Javascript 我如何创建一个空的HTML锚,使页面不';";“跳起来”;我什么时候点击它?,javascript,jquery,anchor,Javascript,Jquery,Anchor,我正在处理一些JQuery,以便在单击链接时隐藏/显示一些内容。我可以创建如下内容: <a href="#" onclick="jquery_stuff" /> <a href="" onclick="jquery_stuff" /> 但是如果我在页面上向下滚动时单击该链接,它将跳回页面顶部 如果我这样做: <a href="#" onclick="jquery_stuff" /> <a href="" onclick="jquery_stuf

我正在处理一些JQuery,以便在单击链接时隐藏/显示一些内容。我可以创建如下内容:

<a href="#" onclick="jquery_stuff" />
<a href="" onclick="jquery_stuff" />

但是如果我在页面上向下滚动时单击该链接,它将跳回页面顶部

如果我这样做:

<a href="#" onclick="jquery_stuff" />
<a href="" onclick="jquery_stuff" />

页面将重新加载,这将使页面摆脱javascript所做的所有更改

大概是这样的:

<a onclick="jquery_stuff" />
<a href="javascript:void(0)" onclick="myJsFunc();">Link</a>

将给我想要的效果,但它不再显示为链接。是否有某种方法可以指定一个空锚,这样我就可以为
onclick
事件分配一个javascript处理程序,而无需更改页面上的任何内容或移动滚动条?

在第二个选项上放置一个“return false;”:

<a href="" onclick="jquery_stuff; return false;" />


您需要
返回false
jquery\u stuff
之后:

<a href="no-javascript.html" onclick="jquery_stuff(); return false;" />

这将取消默认操作

<a href="javascript:;" onclick="jquery">link</a>
小心
返回false,它停止您正在做的任何事情的默认行为


此外,如果您的js类似于提交,您可能会在internet explorer中遇到问题。

您可以简单地说如下:

<a href="javascript:;" onclick="jquery_stuff">

我通常使用
并在需要完成类似任务时将其样式设置为链接。

通常我会:

<a style="cursor:pointer;" onclick="whatever();">Whatever</a>
不管怎样
检查“无睑”注释(使用按钮,而不是锚定)。我正要发布同样的建议。不链接到资源且仅执行脚本的锚点应实现为按钮


停止在HTML中放置事件处理程序,并停止使用锚定标记 这不符合锚定语义的目的。使用按钮并添加 单击Javascript中的处理程序。示例:HTML
Label
和JavaScript
$('jquery\u stuff')。单击(jquery\u stuff)。您可以使用CSS来设置
按钮看起来像一个链接,通过删除填充、边框、边距和
背景色,然后添加链接样式(例如颜色和
文字装饰)10月19日17点40分

这个怎么样:

<a href="#nogo" onclick="foo();">some text</a>

jQuery为此内置了一个名为
preventDefault
的函数,可在以下位置找到:

下面是他们的例子:

<script>
$("a").click(function(event) {
    event.preventDefault();
});
</script>

$(“a”)。单击(函数(事件){
event.preventDefault();
});
您还可以按如下方式构建链接:

<a onclick="jquery_stuff" />
<a href="javascript:void(0)" onclick="myJsFunc();">Link</a>


@他说话的方式有点含蓄,但他是对的。这是最干净的方法。如果你想回到普通的Javascript,那么为什么要使用jQuery呢?jQuery做的事情更简单、更干净?

我喜欢为非Javascript用户提供一个目标的想法。如果目标页面所做的事情与javascript所做的事情类似,那么它将特别有用……根据JS所做的事情,这被认为是非JS用户最容易访问的+1完全没有必要。只需制作href=“javascript:code-stuff”。它不会跳到任何地方。“return false”是正确的方法。如果一个javascript:URL返回一个非空对象,并且在新选项卡中打开之类的函数时出现一个丑陋的javascript错误,那么它仍然可以替换页面。href=“javascript:code stuff”的一个(可能)问题是,用户随后会在状态栏中看到javascript的内容。有点不受欢迎。@humble coffee我认为它为用户增加了一些透明度,就个人而言,我想在点击链接之前知道链接的作用。@RobertC.Barth:你的评论完全没有必要,表明你的选择更好,但事实并非如此。头脑正常的人再也不会使用
javascript:
链接编码了。当您不希望出现默认行为(跳转到顶部)时,正确的做法是从处理程序@Sam返回false:显示函数名称对用户来说是透明的?你所有的用户都是极客吗?我敢肯定这会让网站无法通过键盘访问,因为当你按Enter键时,onclick不会启动,即使你通过添加tabindex来选择范围。如果您正在开发一个需要遵循WCAG指南的公共网站,那么测试这一点很重要。虽然这是事实,但您也在创建一些严格意义上不是HTML意义上的链接的东西。因此,它不应该总是被视为一个。停止将事件处理程序放在HTML中,停止使用不符合锚定语义目的的锚定标记。使用按钮并在Javascript中添加单击处理程序。示例:HTML
Label
和JavaScript
$('jquery\u stuff')。单击(jquery\u stuff)。您可以使用CSS将按钮样式设置为链接,方法是删除填充、边框、边距和背景色,然后添加链接样式(例如颜色和文本装饰)。@您应该将其添加为答案,因为这是唯一正确的答案。它会,但不会是链接,也不会被设置为链接样式,而且无法通过键盘访问。这是唯一真正正确和通用的方法,因为无论使用jQuery还是其他任何东西(在onclick部分),它都可以工作