Отключить поведение ссылок по умолчанию - PullRequest
6 голосов
/ 05 июля 2010

У меня есть список меню:

<ul>
    <li><a href="#about" id="about">ՄԵՐ ՄԱՍԻՆ</a></li>
    <li><a href="#products" id="products" >ԱՐՏԱԴՐԱՆՔ</a></li>
    <li><a href="#farm" id="farm" >ՏՆՏԵՍՈՒԹՅՈՒՆ</a></li>
    <li><a href="#gallery" id="gallery" >ՆԿԱՐՆԵՐ</a></li>
    <li><a href="#contacts" id="contacts">ՀԵՏԱԴԱՐՁ ԿԱՊ</a></li>
</ul>

и я использую плагин address для перемещения назад / вперед по ajax, но у меня есть небольшая ошибка, которую я не могу исправить.

Когда я нажимаю на меню, если страница прокручивается, она перемещает страницу, пока меню не появится в верхней части страницы, но мне это не нужно.

Есть ли способ отключить это поведение?

Большое спасибо.

Ответы [ 4 ]

9 голосов
/ 05 июля 2010

Создайте или измените обработчики click() для ссылок, чтобы использовать метод preventDefault().

Например:

$("a").click 
(
    function (evt)
    {
        //YOUR CODE HERE

        evt.preventDefault(); 
        return false;  
    } 
);
7 голосов
/ 05 июля 2010

попробуйте добавить к своим ссылкам следующее:

onclick="return false;"

Поскольку вы, вероятно, добавляете обработчик событий в эту ссылку для события click. Просто добавьте возвращаемое значение false в конец, а не прямо в тег HTML.

1 голос
/ 06 июля 2010

'href = "# about"' относится к элементу с идентификатором 'about'. поэтому страница перемещена

<!DOCTYPE html>
<html>
<head>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js" type="text/javascript"></script>
</head>
<body>

    <div id="datosResultado">
        1<br />
        2<br />
        3<br />
        4<br />
        5<br />
        6<br />
        7<br />
        8<br />
        9<br />
        10<br />
    </div>
    <ul id="yourMenu">
        <li><a href="#about" id="about">about</a></li>
        <li><a href="#products" id="products">products</a></li>
        <li><a href="#farm" id="farm">farm</a></li>
        <li><a href="#gallery" id="gallery">gallery</a></li>
        <li><a href="#contacts" id="contacts">contacts</a></li>
    </ul>

    <div id="you-click"></div>

</body>

<script type="text/javascript">

$(function(){

    $("#yourMenu>li>a").bind("click", function(ev){

        ev.stopPropagation();

        //...your code...

        $("#you-click").html($(this).html());

        return false;
    });
});

</script>
0 голосов
/ 06 июля 2010

Как говорит Андрес Дескальзо, более того, потому что у них одинаковый идентификатор, затем в href. Так что мне просто нужно изменить идентификатор a тегов

    <a href="#about" id="_about">ՄԵՐ ՄԱՍԻՆ</a>
    <a href="#products" id="_products"> ԱՐՏԱԴՐԱՆՔ</a>
   ....................................................

это решает всю проблему.

Спасибо всем за внимание и идеи;)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...