Задать недопустимый href ссылки

Главные вкладки

Аватар пользователя ejikkkk ejikkkk 7 сентября 2011 в 20:02

Доброгог времени суток. Мне необходимо, чтобы сслки в меню имели href типа #див1 и при клике по ним страница прокручивалась до указанного дива. Но друпал говорит, что в адресе ссылки это прописать нельзя. Попытка изменить ссылки средствами яваскрипт тоже ни к чему не привела, друпал автоматически добавляет к ссылке http://test1.ru, в итоге вместо #див1 ссылка выглядит как ttp://test1.ru/#див1. Что можно сделать? спасибо

Комментарии

Аватар пользователя boneg boneg 7 сентября 2011 в 21:33

"ejikkkk" wrote:
Попытка изменить ссылки средствами яваскрипт тоже ни к чему не привела,

Неправильно значит делали. Для ссылки нужно перехватить события и не отдать его браузеру

Аватар пользователя ejikkkk ejikkkk 7 сентября 2011 в 22:33

Вы бы не могли по-подробнее, я в ЯС никакой вообще, что значит "перехватить события и не отдать его браузеру" и как это сделать?
я просто находил нужную ссылку при помощи getelementid и менял свойство href

Аватар пользователя boneg boneg 7 сентября 2011 в 23:04

нужно не менять href, а перехватывать событие нажатия на ссылку. В друпале включен jQuery, можете использовать удобный селекторы вместо getElementById

$('#id_ссылки').click(function(){
window.scroll().... //скроллите или делаете че там вам нужно
return false; //отменить обработку события браузером
});
Аватар пользователя ejikkkk ejikkkk 8 сентября 2011 в 1:07

ydv

Нет, в шаблоне нельзя, в данном случае надо именно через меню.

boneg

Спасибо, работает!!

$('#id-15').click(function(){
window.location = "#footer"; //скроллите или делаете че там вам нужно
return false; //отменить обработку события браузером
});

Аватар пользователя ejikkkk ejikkkk 8 сентября 2011 в 20:40
$('#id-15').click(function(){
 window.location = "javascript:void(0)"; //скроллите или делаете че там вам нужно
 return false; //отменить обработку события браузером
 });
 
       
        var li2 = document.getElementById('id-15');    
            li2.onclick = "fff()"
               
     function fff () {
         var jakor = document.getElementById('block-views-eeaf45758b6f708d36a59550934c2eae'),
             jakorTop = jakor.offsetTop;
         
        $('html').animate( { scrollTop: jakorTop - 70}, 600 );

 
    };

Почему плавно скролится до якоря только в опере?