Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > JQuery::hover


Автор: NewDima 19.6.2009, 18:37
Мне кажется, как-то странно срабатывает событие hover, почему-то иногда два раза вподряд может сработать, хотя мышь ввожу один раз, так и надо чтоли?
Код

<html>
<head>
<script language="javascript" src="jquery-1.1.4.pack.js"></script>
<script language="javascript">

Код

$(
function () {
$("div").append("<table><tbody></tbody></table>");
$("table").css("border", "1px solid black");
for (i = 0; i < 8; i++) $("tbody").append("<tr></tr>");
for (i = 0; i < 8; i++) $("tr").append("<td></td>");
var cw = 30;
$("td").attr("width", cw);
$("td").attr("height", cw);
$("tr:even > td:even, tr:odd > td:odd")
  .css("backgroundColor", "black")
  .css("border", "1px solid black")
  .hover(
    function () {
      $("#log").append("<br>in"); $(this).fadeOut(100);$(this).fadeIn(500);
    },
    function () {
      $("#log").append("<br>out");
    }
  );
}
);

Код

</script>
</head>
<body>
<div>
</div>
<span id="log">
</span>
</body>
</html>

Автор: ksnk 19.6.2009, 23:10
jQuery уже версии 1.3.2 Причем более старые версии содержат разной степени глюки, так что неплохо бы обновится.

Код

$("td").attr({width: cw,height:cw});

выглядит немного компактнее, чем 2 строки по 1 атрибуту.

Нужно пользоваться функцией stop(), чтобы прекратить анимацию, когда это уже не интересно
Код

  .hover(
    function () {
      $(this).stop(true,true).fadeOut(100).fadeIn(500);
    },
    function () {
      
    }

Чтобы этот самый stop работал как надо и нужно проапгрейдить jQuery до последней версии...
 

Автор: NewDima 20.6.2009, 09:59
За рекомендации, спасибо)
Но, кажется, я невнятно объяснил.
Все работает (а именно, создается таблица, раскрашенная как шахматная доска, и ко всем черным ячейкам привязывается обработчик подсветки ячейки).
Так вот почему-то обработчик выполняется ИНОГДА дважды.
А в лог я просто добавляю регистрацию того факта, что обработчик сработал, когда мышь вошла в область, и когда вышла. В обработчике все видно. Посмотрите еще раз, пожалуйста, я во вложении кинул.

Автор: ksnk 20.6.2009, 10:14
NewDima, Примерно минута мельтешения мышкой с разной скоростью ничего интересного не выявила. in и out выводятся строго друг за другом.
Какой броузер и какая, примерно, скорость процессора (это может быть важно...)?

Автор: NewDima 20.6.2009, 10:57
NN 9.0.0.6
Core 2 Duo 3.16 Ггц
может netscape  глючит...

Автор: ksnk 20.6.2009, 11:03
я не удивлюсь, если так... Вот что по Netscape пишут в Википедии
Цитата

2007-12-28 в блоге Netscape было объявлено, что Netscape 9 будет поддерживаться обновлениями безопасности AOL (Time Warner) до 2008-02-01, и после этого активная поддержка любых версий Netscape будет прекращена. В последнее время команда разработчиков Netscape уменьшилась до небольшой группы, занятой в основном работой над дистрибутивом Mozilla Firefox с другой темой и несколькими расширениями. Пользователям Netscape было рекомендовано перейти на Firefox.[5][6][7]
Обновление 9.0.0.6 (февраль 2008) предлагает скачать Flock или Firefox. Официальная поддержка браузера Netscape Navigator закончилась 1 марта 2008 года.[8][9]

Автор: NewDima 20.6.2009, 14:49
ясно, спасибо, незнал

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)