Случайный показ элемента li из составного списка
Здравствуйе!
У меня такая вот задача: -нужно перебрать в случайном порядке все элементы по одному из списка; -элемент из списка показывать 1 раз; -список один общий нужно собрать из двух массивов ul (грубо говоря 2 столбика) -после перебора всех элементов остановиться на последнем; -при обновлении страницы каждый раз выбирать произвольный первый элемент, далее перебирать все элементы до конца набора в произвольном порядке. Вот скрипт, и не большой пример странички со стилями который я написал. Выдается ошибка в данном случае указывающая на строку 51 arr.onmouseout is not a function. Получается что не правильно так объединять наборы элементов или ошибка в чем-то другом? Вообще, можно так присвоить переменной ссылку на набор и затем обращаться к переменной, а не к набору? <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="ru"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title></title> <style type="text/css"> ul, li { list-style-position:inside; list-style-type:none; padding:0; margin:0; } span, a {padding:0; margin:0; } #menu { /*border: 1px solid #000;*/ left:0; position:relative; top:0; width:300px; } #menu a:hover {color:#f00;} .left-menu { /*border: 1px solid #f00;*/ left:0; float:left; margin-left:15px; top:0; width:100px; } .right-menu { /*border: 1px solid #0f0;*/ margin-left:15px; } .hit { color:#f00; } </style> <script type='text/javascript' src='js/jquery-1.5.2.min.js'></script> <script type="text/javascript"> $(function () { var arr=$(".left-menu ul li a span").add($(".right-menu ul li a span")); arr.onmouseout(function() { setTimeout(function() { arr.each(function(i) { var leng=arr.length; i=Math.ceil(Math.random()*leng); arr .removeClass("class", "hit") .eq(i) .addClass("hit") }) }, 4000) }) }) </script> </head> <body> <div id="menu"> <ul class="left-menu"> <li><a href="#"><span>Строка 01</span></a></li> <li><a href="#"><span>Строка 02</span></a></li> <li><a href="#"><span>Строка 03</span></a></li> <li><a href="#"><span>Строка 04</span></a></li> <li><a href="#"><span>Строка 05</span></a></li> </ul> <ul class="right-menu"> <li><a href="#"><span>Строка 06</span></a></li> <li><a href="#"><span>Строка 07</span></a></li> <li><a href="#"><span>Строка 08</span></a></li> <li><a href="#"><span>Строка 09</span></a></li> <li><a href="#"><span>Строка 10</span></a></li> </ul> </div> </body> </html> |
а вы хоть смотрите какие у вас ошибки выдаёт браузер?
|
.mouseout(), без on
|
Skipp,
Конечно смотрю. Я же написал выше - ошибка в строке 51 данного кода! Я буду вежливее и скажу вам спасибо. Matre, Спасибо за подсказку. Я пока путаю с javascript :) Я вот тут поковырял немного и нашел объявление переменных с использованием спец. знака Jquery - $. Так, наверное, с точки зрения синтаксиса Jquery будет более правильно. Т.е. в строке 49 нужно написать: var $arr=$(".left-menu ul li a span").add($(".right-menu ul li a span")); Тогда можно обращаться к переменной как к объекту - через точку. Спасибо за помощь! Будем делать. |
Часовой пояс GMT +3, время: 12:34. |