2010-06-16 51 views
5

显示不需要href属性的锚的首选方式是什么(因为它只用于javascript)?首选的方式来显示不需要href的锚?

例如,<a href="#">example 1</a><a href="javascript:;">example 2</a>

+0

重复的http://stackoverflow.com/questions/134845/href-for-javascript-links-or-javascriptvoid0 – stefanglase 2010-06-16 09:31:02

回答

2

正如其他用户所说,如果一个非JavaScript的后备可能比使用它作为你的href。

在用于与JavaScript的用户的弹出打开图像,的

实施例而回落到正常的网页加载为用户无需(使用jQuery):

<a class="popup" href="path/to/image.png">Baby Llama Picture</a> 

<script> 
    // Assuming a function called popUpImage does the magic 

    $('.popup').click(function(event) { 
     popUpImage($(this).attr('href')); 
     event.preventDefault(); 
    }); 
</script> 

不具有有用定义的行为无javascript的任何链接应该使用javascript注入页面。这样,没有javascript的用户将永远不会看到它们,并且不需要提供有效的href。动态插入的JavaScript仅链接(使用jQuery)的

实施例:

<img class="editable" src="baby-llama.png" /> 

<script> 
    // Assuming a function doEditing that allows javascript based editing of an image 

    $(function() { 
    $('.editable').each(function() { 
     var editable = $(this); 

     var editLink = $('<a href="">Edit image</a>'); 
     editLink.click(function() { 
     doEditing(editable); 
     }); 
     editable.insertAfter(editLink); 
    }); 
    }); 
</script> 
6

您应该始终为没有使用Javascript的用户设置回退链接。当调用javascript时,您可以从处理程序返回false以避免链接激活。例如:

<a href="page.html" onclick="doSomething(); return false;">example 1</a> 

如果没有合适的页面链接,替代方法是根本不使用链接。改为使用按钮。如果真的有必要,你可以将它设计成看起来像你的链接。

+0

即HTTP ://icant.co.uk/articles/pragmatic-progressive-enhancement/#build – Quentin 2010-06-16 09:16:12

3

理想情况下,href应该尽可能接近JavaScript将要做的事情。

例如,如果Javascript打算用更大的图片弹出一个灯箱,href应该带你到一个新的页面,你可以看到一个更大的图片。

如果你采用这种方法,那么没有javascript的人仍然可以获得很好的体验,而使用javascript的人可以获得更平滑,更有光泽的体验。

退房Unobtrusive JavaScriptProgressive enhancement

0

你应该坚持DisgruntledGoat提到什么rikh,使您的网站可用于peaple withou的JavaScript。

如果你想做一些不需要或不可能使用javascript的东西,你应该使用<a href="#">example 1</a>并让你onclick-funktion return false以防止跳转到页面的顶部 - 但最好的方式总是一个“正常“链接作为后备。