LINUX.ORG.RU

Jquery+Menu style.


0

1

http://apycom.com/menus/
Есть там менюшки.
http://apycom.com/menus/4-gray.html
Я применил 4-gray. И обнаружил, что есть косяк, который отсутствует только в Firefox'е.

Сам скрипт работает с примерно такой структурой:
<div id=«menu»>
<ul class=«menu»>
<li class=«current»></li>
<li></li>
<li></li>
</ul>
</div>

И вылез косяк. Если я специально выставляю елементам <li> в движке cms'а класс current, то под Фоксом скрипт реально работает - по умолчанию не ставит НА ПЕРВЫЙ <li> класс и ползунок сразу станавливается на елемент, которому Я присвоил класс current.

Но Все остальные: IE, Opera, Chrome БОЛТА ЛОЖИЛИ на это. Не знаю почему, но скрипт игнорирует присутствие специально выставленного мною класса для опред. <li>.

ЧЯДНТ??

★★

Последнее исправление: KosmiK (всего исправлений: 1)

Пример проблемы

Пример для всех браузеров
Это состояние по умолчанию для всех браузеров, если в ручную не выставлен класс current.

<div id="menu">
  <ul class="menu">
    <li class="current"><a class="parent" ><span>*</span></a></li>
    <li><a class="parent" ><span>**</span></a></li>
    <li><a class="parent" ><span>*</span></a></li>
    <li><a class="parent" ><span>*</span></a></li>
    <li><a class="parent" ><span>***</span></a></li>
  </ul>
</div>


Пример для Firefox'а с вручную проставленным классом

<div id="menu">
  <ul class="menu">
    <li><a class="parent" ><span>*</span></a></li>
    <li><a class="parent" ><span>*</span></a></li>
    <li><a class="parent" ><span>*</span></a></li>
    <li><a class="parent" ><span>**</span></a></li>
    <li class="current"><a class="parent" ><span>***</span></a></li>
  </ul>
</div>


Пример для др.браузеров с вручную проставленным классом

<div id="menu">
  <ul class="menu">
    <li class="current"><a class="parent" ><span>*</span></a></li>
    <li><a class="parent" ><span>**</span></a></li>
    <li><a class="parent" ><span>**</span></a></li>
    <li class="current"><a class="parent" ><span>**</span></a></li>
    <li><a class="parent" ><span>***</span></a></li>
  </ul>
</div>

Последний пример показывает, что в других браузерах javascript игнорирует присутствие current'а у др. <li>

KosmiK ★★
() автор топика
Ответ на: комментарий от Annoymouse

-=:=-

я хочу узнать, возможно ли распространить поведение Firefox'а на другие браузеры? Можно ли этого достичь, както зафиксив жопа-скрипт?

KosmiK ★★
() автор топика
Ответ на: комментарий от Annoymouse

-=:=-

Мне нужно, чтобы на основе данного плагина менюшка работала всюду одинаково. Как в файерфоксе.

Изучить jquery? чтобы через месяц забыть? хм...не..

KosmiK ★★
() автор топика
Ответ на: комментарий от Annoymouse

-=:=-

хм..а есть ли возможность не допустить присвоения класса елементу (тоесть запретить js'у это делать)

KosmiK ★★
() автор топика
Ответ на: -=:=- от KosmiK

Может, тебе подойдет менюшка _без_скриптов_ с тремя состояниями (обычный, наведенный, выделенный),: http://www.companion-travel.ru/tour.html

Там нет эффекта «дергания», если нужен именно он, то звиняй, только скрптом. Тогда, на вскидку, попробуй вместо классов использовать id.

Annoymouse
()
Ответ на: комментарий от Annoymouse

-=:=-

Не..тут весь ништяг в этих эффектах.
Понимаешь, весь вопрос в том - почему в ff жопа скрипт отрабатывает так, а в других иначе?
И ктому же, сам скрипт юзает именно класс для определения текущего стартового элемента.

KosmiK ★★
() автор топика
Ответ на: комментарий от Annoymouse

-=:=-

как зачем? У меня код в cms'е сам выставляет class=«current» на текущий элемент меню. Так зачем,спрашивается, это делать скрипту.

KosmiK ★★
() автор топика
Ответ на: комментарий от Annoymouse

-=:=-

Я подозреваю, что за это ответственна сия строчка:

$back = $('<li class="back"><div class="left"></div></li>').appendTo(me), $li = $(">li", this), curr = $("li.current", this)[0] || $($li[0]).addClass("current")[0];


А именно вот этот кусочег:

$($li[0]).addClass("current")[0]

?

KosmiK ★★
() автор топика
Ответ на: -=:=- от KosmiK

> Так зачем,спрашивается, это делать скрипту.

Так и не делай это скриптом :) «Выкинуть нафик из скрипта» и «запретить» - все же вещи немного разные.

А именно вот этот кусочег:

$($li[0]).addClass(«current»)[0]

Похоже.

//Что-то я невнимательно скрипт читал, не видел даже, где там mouseover назначается.

Annoymouse
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.