Kolyaj,
не согласен. Формально это все-таки текстовый якорь. Ну а насчет «легитимности» ссылки, которая никуда не ведет… Пользователь привык, что ссылка — это место, по которому нужно кликнуть, и что-то произойдет. Кстати, для того, чтобы разделять обычные и яваскриптовые ссылки, у последних делают подчеркивание пунктирное.
Ну, а если для яваскриптовых ссылок использовать отдельный класс, все будет намного проще:
<style>
a.js-link {
text-decoration: none;
border-bottom: dashed 1px;
}
</style>
<script type="text/javascript">
anchorWatcher = function(e){
if (!e){
e = window.event
};
var trigger = e.srcElement || e.target;
while (trigger){
if (trigger.tagName && trigger.tagName.toLowerCase() == "a") break;
trigger = trigger.parentNode;
};
if (!trigger) return;
if (/(^|\s)js-link(\s|$)/.test(trigger.className)){
if (e.preventDefault) e.preventDefault();
if (e.returnValue) e.returnValue = false;
};
}
if (document.addEventListener){
document.addEventListener('click', anchorWatcher, false);
} else if (document.attachEvent){
document.attachEvent('onclick', anchorWatcher);
} else {
document.onclick = anchorWatcher;
};
</script>
<p><a href="#">Я обычная ссылка</a></p>
<p><a href="#" class="js-link">А я ссылка яваскриптовая</a></p>