2012-01-26 4 views
4

Я написал HTML-страницу, которая просматривается в первую очередь на iPad. В основном это список часто задаваемых вопросов с эффектом зависания по каждому вопросу. Чтобы инициировать эффект наведения на ipad, мне пришлось поместить фиктивную ссылку вроде этого.Неожиданная страница прокручивается при нажатии ссылки

<a href="#">The question?</a> 

Вот проблема, которая действительна для каждого браузера: Если список так долго, что у вас есть для прокрутки вниз и при нажатии на ссылку в нижней части страницы, он возвращается к началу а также инициирует эффект наведения. Я сделал скрипку демонстрирующей цели:

http://jsfiddle.net/SWXHR/1/

При прокрутке вниз и нажав на последнюю ссылку, страница будет прыгать на вершину.

Вопрос: Как я могу предотвратить перескакивание страницы вверху при использовании фиктивной ссылки?

+2

Если это не гиперссылка, почему вы заполняете свойство href? Вы, вероятно, злоупотребляете чем-то. http://developers.whatwg.org/text-level-semantics.html#the-a-element – ANeves

+0

Спасибо, что указали это. Я знаю, что я злоупотребляю им, но я не знаю никакой дружеской замены для псевдо-класса. Может быть, кто-то может указать мне в правильном направлении? – aydio

+0

Наведение можно применить ко всему. Если это ваша единственная проблема, вы можете просто заменить span. Выведет ответ. – ANeves

ответ

13

Добавьте к этому ваши ссылки:

<a href="#" onClick="return false;">The question?</a> 

Или, если вы делаете это с помощью JQuery:

$('a[href="#"]').click(function(event){ 

    event.preventDefault(); 

}); 
+0

Не уничтожайте другие ссылки: '$ ('a [href =" # "]'). Click (...);' - это должно указывать только гиперссылки на '#', в соответствии с http: //www.w3 .org/TR/css3-селекторы/# селекторы – ANeves

+0

Хорошая точка. Я добавил код одеяла, который будет использоваться по мере необходимости. Однако я отредактировал свой ответ. –

+0

gr8 это работает отлично .... + 1 – Youddh

2

добавить к якорным тэгом

onclick="return false;" 

Это остановит его

3

Вы можете использовать <a href="javascript:;">The question</a> ничего не сделает (пустая команда javascript), и ваш свиток останется на месте;)

1

Если все, что вы хотите, это эффект наведения, вам не нужно использовать a.

Вы можете использовать пролеты, и заменить CSS целевой пролеты вместо якорей: http://jsfiddle.net/SWXHR/6/

Если вы хотите курсор, чтобы быть как курсор для якорей, вы можете сделать это с помощью CSS - cursor: pointer;

+0

Это не будет инициировать эффект наведения на iPad - мне нужно установить якорь. – aydio

+0

1. Не могли бы вы объяснить, что вы имеете в виду под «эффектом зависания на iPad»? 2. Есть ли для него CSS-селектор? Может быть, ': focus', или': active'? 3. Так как iPad не имеет указательного устройства, как вы «наведите курсор»? – ANeves