Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.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 <;的理想值;a href="&引用&燃气轮机;何时用于JS事件?_Javascript_Jquery_Html_Hyperlink - Fatal编程技术网

Javascript <;的理想值;a href="&引用&燃气轮机;何时用于JS事件?

Javascript <;的理想值;a href="&引用&燃气轮机;何时用于JS事件?,javascript,jquery,html,hyperlink,Javascript,Jquery,Html,Hyperlink,我有一个链接想出现在我的页面上 <a>add another</a> 添加另一个 但它看起来不像链接,除非我添加了href属性。我将使用jquery向它添加一个。click()事件,这样它就不需要其他任何东西了 对href的最佳值是什么#javascript:void(0)?我担心的是,如果有人在添加.click()事件或其他事件之前单击它#将滚动到页面顶部,void(0)看起来有点恶心,如果他们查看地址栏,信息就没有了…并确保在单击javascript时,您可以悄

我有一个链接想出现在我的页面上

 <a>add another</a>
添加另一个
但它看起来不像链接,除非我添加了
href
属性。我将使用jquery向它添加一个
。click()
事件,这样它就不需要其他任何东西了


href
的最佳值是什么<代码>#<代码>javascript:void(0)?我担心的是,如果有人在添加
.click()
事件或其他事件之前单击它<代码>#将滚动到页面顶部,
void(0)
看起来有点恶心,如果他们查看地址栏,信息就没有了…

并确保在单击javascript时,您可以悄悄地使用javascript返回false,而且您还没有为其设置链接。

理想的href属性是链接到一个URL,该URL将为没有链接的访问者执行相同的操作已启用JavaScript。如果没有必要,我通常会使用
href=“#”
,我对此没有任何问题。

如果您担心用一个
#
跳到页面顶部,请尝试给锚定一个name属性,然后使用
#anchor name

OctorOpe(#)=是一种草率的链接到“页面顶部”的方式,实际上已经没有任何用处了。使用它会导致可用性和可访问性问题


如果您的链接实际上不像HTML链接,那么它就不应该是HTML链接

如果是链接,则在href属性中应该有一个有效的URI


如果您绝对必须有一个空href,那么您应该只使用:href=“javascript:;”

我的建议是让链接将他们带到一个操作,如果javascript完全关闭,该操作将“做正确的事情”。我的意思是,如果可能的话,它应该产生与客户端操作相同的效果,或者产生相同效果的一组步骤。如果这是不可能或不可取的,那么在应用处理程序之前不应该显示链接。也就是说,首先让它“
display:none;
然后在应用事件处理程序后执行
show()

<a href="/something/add" class="add-item javascript-only">Add Another</a>

<script type="text/javascript">
   $(function() {
       $('.add-item').click( function() {
           ...
           return false; // important!
       });
       $('.javascript-only').show();
  });
</script>

$(函数(){
$('.add item')。单击(函数(){
...
返回false;//重要!
});
$('.javascript only').show();
});
我通常这样做

<a href="JavascriptDisabled.htm">Foo</a>

然后,在处理click事件时,确保取消它(通过返回false或调用preventDefault)


JavascriptDisabled.htm页面上有一条友好的消息,如“必须启用Javascript才能使用此功能”。

另一种可能是使用
元素而不是
,并使用:hover设置链接样式(更改颜色、下划线、显示手光标或任何您喜欢的内容)。如果您已经在为站点中的其他链接设置样式,则此操作非常有效。如果您允许链接按浏览器/用户指定的方式显示,则此假链接可能与站点中的真实链接不同

HTML:


非常同意,+1表示可访问性使用#的问题是如果您忘记从onclick处理程序返回false(或者如果您的用户禁用了JavaScript),您的滚动条将移动到页面顶部。如果有人使用某种形式的屏幕阅读器,这也会改变内容焦点。非常酷的解决方案。我喜欢它。+1想法不错!我可以使用它。“如果您的链接实际上不像HTML链接,那么它不应该是HTML链接。“--那么应该是什么?如果您这样做(使一些通常不可单击的元素可单击),请将其设置为键盘可访问。我应该能够对其进行tab键,然后按enter键,并使其与“单击”的行为相同。”“我不知道,马克,没有更多的背景。这真的取决于很多变量,不是真的。如果它不是一个链接,那么它几乎应该总是一个按钮(除非它是其他形式的输入)。@justin…在很多情况下,链接和按钮都可能是错误的元素。我主要考虑使用大量javascript通过触发器显示/隐藏元素等的接口。
<span class="add-link" onclick="...">add another</span>
.add-link:hover {
  text-decoration:underline;
  color: blue;
  cursor:pointer;
}