Javascript 我如何创建一个空的HTML锚,使页面不';";“跳起来”;我什么时候点击它?
我正在处理一些JQuery,以便在单击链接时隐藏/显示一些内容。我可以创建如下内容: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
<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中的处理程序。示例:HTMLLabel
和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中添加单击处理程序。示例:HTMLLabel
和JavaScript$('jquery\u stuff')。单击(jquery\u stuff)代码>。您可以使用CSS将按钮样式设置为链接,方法是删除填充、边框、边距和背景色,然后添加链接样式(例如颜色和文本装饰)。@您应该将其添加为答案,因为这是唯一正确的答案。它会,但不会是链接,也不会被设置为链接样式,而且无法通过键盘访问。这是唯一真正正确和通用的方法,因为无论使用jQuery还是其他任何东西(在onclick部分),它都可以工作