我目前使用jQuery的<a>标签来启动像点击事件等事情。
例如<a href="#" class="someclass">Text</a>
但我讨厌“#”使页面跳转到页面顶部。我能做什么呢?
我目前使用jQuery的<a>标签来启动像点击事件等事情。
例如<a href="#" class="someclass">Text</a>
但我讨厌“#”使页面跳转到页面顶部。我能做什么呢?
当前回答
只使用
<a href="javascript:;" class="someclass">Text</a>
JQUERY
$('.someclass').click(function(e) { alert("action here"); }
其他回答
只使用
<a href="javascript:;" class="someclass">Text</a>
JQUERY
$('.someclass').click(function(e) { alert("action here"); }
如果元素没有有意义的href值,那么它就不是真正的链接,那么为什么不使用其他元素呢?
正如Neothor所建议的那样,如果样式正确,span将作为一个可以点击的项目而显而易见。你甚至可以附加一个悬停事件,让元素在用户鼠标移动时“亮起”。
然而,话虽如此,你可能想要重新考虑你的网站的设计,这样它就可以在没有javascript的情况下运行,但在有javascript时可以通过javascript进行增强。
只需使用<input type="button" />而不是<a>,并使用CSS样式它看起来像一个链接,如果你愿意。
按钮是专门用于单击的,它们不需要任何href属性。
最好的方法是使用onload动作来创建按钮,并通过javascript将其附加到需要的位置,因此禁用javascript后,它们根本不会显示,也不会使用户感到困惑。
当您使用href="#"时,您会得到大量指向相同位置的不同链接,当代理不支持JavaScript时,这将不起作用。
带有href="#"的链接几乎总是应该被按钮元素替换:
<button class="someclass">Text</button>
使用带有href="#"的链接也是一个可访问性问题,因为这些链接将对屏幕阅读器可见,屏幕阅读器将显示“链接-文本”,但如果用户单击它,它不会去任何地方。
#/技巧有效,但会向浏览器添加一个历史事件。因此,点击返回并不能像用户希望的那样工作。
美元(的身体)。(“点击”,“(href = " # "],函数(e) {e.preventDefault ()});是我去的方式,因为它适用于已经存在的内容,以及加载后添加到DOM的任何元素。
具体来说,我需要在.btn-group(Reference)中的引导下拉菜单中做到这一点,所以我做了:
美元(的身体)。('点击','。下拉菜单li a[href="#"]', function(e) {e.f preventdefault ()});
这样它是有针对性的,并且不会影响页面上的任何其他内容。