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 nameOctorOpe(#)=是一种草率的链接到“页面顶部”的方式,实际上已经没有任何用处了。使用它会导致可用性和可访问性问题
如果您的链接实际上不像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;
}