2012-01-05 25 views
1

在我们的页面中,我们有一大堆锚点标签,我们动态地附加点击处理程序。在这种情况下,最好的办法是在标记中保留锚标签?好的方法来保持没有默认网址的锚标记

目前我们有

<a href="javascript:void(0);" >....</a> 

我们需要HREF空值作为他们中的一些可能不会得到重视与点击处理程序。

+0

绝对_best_东西放在href属性将明显是一个执行JS事件处理程序所执行的相同操作的URL。编辑:如果这是不可能的,然后使用#。 – powerbuoy 2012-01-05 06:16:48

+0

当有人点击它时,使用#是一个问题。 – ChrisOdney 2012-01-05 15:18:33

+1

那么你必须通过从事件处理程序返回false或使用事件对象的'preventDefault()'方法来阻止链接的默认行为。 – powerbuoy 2012-01-05 18:03:26

回答

0

Ommit中的href属性和分配的onclick时也设置光标将元素的样式指向“指针”,否则禁用JS的用户会在点击元素时感到困惑,并且什么都不会发生。

+0

比较与href和没有href锚点,是光标:指针风格唯一的区别?在我看来,收到了href,不知道它在不同浏览器中的表现如何。 – ChrisOdney 2012-01-05 15:21:30

+0

在这种特殊情况下我没有看到任何区别,你只使用href-attribute来获得特殊的光标,这可以使用CSS来完成(事实上,你不需要使用'-lelement'可以是任何元素) – 2012-01-05 22:15:42

1

从jQuery事件处理函数返回false将阻止默认行为。没有必要混淆href属性(尽管这不会造成伤害)。

$(document).on("click", "a.yourSelector", function(){ 
    //your code 

    return false; 
}); 

当然还是jQuery的预1.7

$(document).delegate("a.yourSelector", "click", function(){ 
    //your code 

    return false; 
}); 

欲了解更多有关取消DOM事件,看到this question (and answer)this link

+0

http://stackoverflow.com/questions/1357118/javascript-event-preventdefault-vs-return-false – 2012-01-05 06:31:20

+0

@rfausak - 谢谢 - 添加到我的答案 – 2012-01-05 06:49:13

0

的简单的代码会是这样的:

<a href='#' class='do-stuff'>Link</a> 

的“#”号保持HTML代码简洁,易读

jQuery(document).ready(function() { 

    jQuery(".do-stuff").click(function() { 
    alert("clicked"); 
    return false; // disables default link action 
    }); 

}); 
相关问题