当用于JS事件时,的理想值是什么?
当用于JS事件时,的理想值是什么?
我有一个链接想要出现在我的页面上,但是如果我不加一个`href`属性的话,它看起来不像是一个链接。我打算使用jQuery给它添加一个`.click()`事件,所以它实际上不需要其他任何东西。
那么,`href`属性的最佳值是什么呢?`#`?`javascript:void(0)`?我的担心是如果有人在`.click()`事件添加之前点击它之类的。`#`会将他们滚动到页面顶部,`void(0)`看起来有点不好看,而且如果他们看地址栏的话也不会提供任何信息。
解决方法是,在HTML代码中的标签中添加class属性,用于标识该链接只在JavaScript可用时显示。然后,在JavaScript代码中,使用jQuery选择器找到具有该class属性的链接,并将其显示出来。
完整的文章如下:
我的建议是,当完全禁用JavaScript时,让链接指向一个动作,可以“做正确的事情”。也就是说,如果可能的话,它应该产生与客户端操作相同的效果,或者一些步骤,可以产生相同的效果。如果这不可能或不可取,那么在应用了事件处理程序之前,不应该显示该链接。也就是说,最初将其设置为"display: none;",然后在应用事件处理程序之后使用"show()"。
在HTML代码中,可以将需要在JavaScript可用时显示的链接,添加一个class属性,例如"class='javascript-only'"。然后,在JavaScript代码中,使用jQuery选择器找到具有该class属性的链接,并将其显示出来。下面是一个示例代码:
<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>
问题的原因是为了在不启用JavaScript的情况下,为访问者提供执行相同操作的URL链接。然而,使用href="#"
会导致以下问题:如果忘记在onclick处理程序中返回false(或者用户禁用了JavaScript),滚动条会移动到页面顶部。这也会改变内容焦点,如果有人正在使用某种屏幕阅读器。
解决方法是使用以下代码来替代href="#"
:
Link
这样,如果JavaScript被禁用或者onclick处理程序没有返回false,页面不会滚动到顶部,也不会改变内容焦点。
当使用JS事件时,标签的理想值是什么?这个问题的出现是因为需要在JS事件处理程序中取消默认的链接行为,同时提供一个友好的信息页面来告知用户必须启用JavaScript才能使用该功能。解决方法是在标签中指定一个JavaScript禁用的页面作为链接地址,并在点击事件处理程序中取消默认行为。以下是一个例子:
Foo
然后,在处理点击事件时,通过返回false或调用preventDefault来取消默认行为。JavaScriptDisabled.htm页面上只需要显示一个友好的信息,如"您必须启用JavaScript才能使用该功能"。这是一个很好的解决方案,受欢迎且被认可。大家觉得这个思路不错,可以在自己的项目中使用。