Показать сообщение отдельно
  #1 (permalink)  
Старый 12.02.2010, 00:35
Новичок на форуме
Отправить личное сообщение для Arkaim Посмотреть профиль Найти все сообщения от Arkaim
 
Регистрация: 11.02.2010
Сообщений: 9

Написал функцию, а WebKit её не понимает
Здравствуйте, я только начал изучать JavaScript. И сразу же пришлось пробовать написать функцию, которая должна менять класс у элемента списка, тем самым достигается подсветка активного пункта меню. Принадлежность определяется по document.title. В Опере, Ослике 8 и Фоксе все работает замечательно, а в WebKit производных браузерах не хочет подсвечиваться активное меню, т.е. само меню формируется, но подсветка не работает. Из всех вариантов решения данного вопроса на JavaScript, заработал только этот. Привожу сам код:
в HTML:
<div id="mainmenu">
        <script type="text/JavaScript" src="/lib/tpl/mysite/js/mainmenu.js"></script>
</div>


Сама функция (для краткости привожу два пункта меню, всего их 6):
titArray = new Array()
			titArray [0] = "Главная [Мой сайт]"
			titArray [1] = "Блог [Мой сайт]"
			titArray [2] = "Проект [Мой сайт]"
			
			urlArray = new Array()
			urlArray [0] = "/start"
			urlArray [1] = "/blog"
			urlArray [2] = "/projects"
			
			mnuArray = new Array()
			mnuArray [0] = "<span>Главная</span>"
			mnuArray [1] = "<span>Блог</span>"
			mnuArray [2] = "<span>Проект</span>"
         
         var libegin = "<li>"
			var lnk1 = "<a href='"
			var lnk2 = "' class='unactive' target='_parent'>"
			var lnk22 = "' class='active' target='_parent'>"
			var lnk3 = "</a>" 
			var liend = "</li>"
		  document.write("<ul class='menu'>")
        if (document.title == titArray[0])
        {document.write(libegin+lnk1+urlArray[0]+lnk22+mnuArray[0]+lnk3+liend)}
        else
        {document.write(libegin+lnk1+urlArray[0]+lnk2+mnuArray[0]+lnk3+liend)}
        
        if (document.title == titArray[1])
        {document.write(libegin+lnk1+urlArray[1]+lnk22+mnuArray[1]+lnk3+liend)}
        else
        {document.write(libegin+lnk1+urlArray[1]+lnk2+mnuArray[1]+lnk3+liend)}

        if (document.title == titArray[2])
        {document.write(libegin+lnk1+urlArray[2]+lnk22+mnuArray[2]+lnk3+liend)}
        else
        {document.write(libegin+lnk1+urlArray[2]+lnk2+mnuArray[2]+lnk3+liend)}


Подскажите в чем может быть проблема? Возможно есть более элегантный вариант решения?
Ответить с цитированием