Javascript-форум (https://javascript.ru/forum/)
-   Internet Explorer (https://javascript.ru/forum/css-html-internet-explorer/)
-   -   Проблема с анкерами в IE6 (https://javascript.ru/forum/css-html-internet-explorer/2042-problema-s-ankerami-v-ie6.html)

Макс 25.10.2008 16:28

Проблема с анкерами в IE6
 
Всем доброго дня суток!

Вот кусок кода:
...
active_menu:function() {
	var elems = $("menu").getElementsByTagName("li");
	for(var i=0; i<elems.length; i++) {
	    var obj = elems[i];
	    if(obj) {
	        obj.onclick = function() {
		    menu.show_hide(this.id);
		    return false;
	        }
	    }
	}
    },
...
остальную часть кода я не приводил она не особо нужна, да и смотреть там страшно :),
Эта часть кода отвечает за присвоение каждому элементу маркированного списка события onclick. При нажатии на элементы списка открывается определенный элемент див в котором в свою очередь содержатся анкеры.(тэг <a href="...).

Проблема следующая:
Когда я нажимаю на анкер который должен открыть определенный див, у меня, в Firefox, переходит по href="", т.е. отображается в истории посещения браузера, но мне это незачем, вот поэтому я добавил return false; в обработчик события. А в IE6 return false; накладывается на анкеры даже внутри элементов DIV, и location.href на эти анкеры не действует. Почему так происходит? Я же накладываю событие только на элементы списка li (DIV с анкерами находится междуэлементами li)

Octane 25.10.2008 17:01

Уберите обработчик события с контейнера <li> и назначайте его какому нибудь дочернему элементу, например первой вложенной ссылке.
Почитайте статью про систему событий на этом сайте, поймете почему так происходит.


Часовой пояс GMT +3, время: 15:11.