1. JavaScript / Говнокод #1877

    +157.3

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    function SetStyleForFilterOver(this2) {
        this2.style.border = "1px solid #ea0000";
        this2.style.color = "white";
        this2.style.background = "#404040";
    }
    function SetStyleForFilterOut(this2) {
        this2.style.border = "1px solid #404040";
        this2.style.color = "#ea0000";
        this2.style.color = "#ea0000";
        this2.style.background = "#eeeeee";
    }

    Тс-с-с-с... Только не говорите автору про css и селектор ":hover" :о)

    Запостил: Ordos, 21 Сентября 2009

    Комментарии (18) RSS

    • угу, и ie6 который ховер понимает только для ссылок
      Ответить
    • Только что проверил на IE 8, он поддерживает ":hover" только для ссылок
      Ответить
      • Не правда, только что проверил:
        div{background:#f70;}
        div:hover{background:#07f;}
        Ответить
        • кроссбраузерно только для ссылок. Но не говнокодер сделал бы два класса.
          Ответить
          • я так и делаю - но это тоже наверно говно-код... есть еще какой способ?
            Ответить
            • Думаю не говнокод. Когда в классах, легче управлять
              Ответить
            • Если hover не для ссылок, то только классы + js. Другие варианты от лукавого. Судя по коду, автор не умеет применять классы, да и просто строки повторяет зачем-то, видимо для надежности.
              Ответить
          • Если не учитывать старые браузеры, то вполне кроссбраузерно. (ну подумаешь, у пользователей ie6 мигать ничего не будет :о)
            Ответить
        • На IE 8 проверял?
          твой код проверил только что на IE 8, не работает.
          Ответить
          • Да, я проверил на IE8. Сделал минимальную хтмл-страничку (доктайп, теги хтмл, хеад,боди), в тело поместил <div>Hello</div>. Всё работает.
            Ответить
            • на этом сайте через :hover сдалана подсветка блока комментария. Так вот проверил в ie8, эта зараза ест :hover только при наведении на текст, тогда как другие браузеры отрабатывают как надо.
              Ответить
            • Спасибо, с доктайпом <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

              всё работает. Я то делал страничку без доктайпа. Спасибо.
              Ответить
    • css, да
      а вот :hover нет
      Ответить
    • пасиба... я так часто говнокодю... теперь буду стараться :hover :-)
      Ответить
    • кстати в ие прямое присваивание отрабатывает в разы(!!!) быстрее, чем присваивание стиля. в свое время столкнулись с этим в проекте.
      Ответить
      • что такое прямое присваивание и присваивание стиля?
        Ответить
      • тут такое дело, если много стилей так устанавливать:
        "this2.style.border = "1px solid #404040";"
        то может быть замедление, потому что после каждой такой команды, вызывается перерисовка, которая может особенно долгой если меняется длина или высота объекта, ведь нужно подвинуть и другие объекты (в случае если position:absolute, то перерисовка особо не замедлится).

        Кто хочет почитать об этом отсылаю сюда: http://dev.opera.com/articles/view/efficient-javascript/
        статья написана разработчиками Opera, но не только для браузера Опера.
        Ответить

    Добавить комментарий