ЙажаСценарий / Говнокод #14340 Ссылка на оригинал

0

  1. 1
  2. 2
$(element).width($(element).width());
$(element).height($(element).height());

Просто нет слов.

Запостил: Diwms Diwms, (Updated )

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

  • Подёргивание. Уж не помню, файрятся ли какие-то события на width() в jquery, но с ExtJS подобное видел. Плохая практика, конечно.
    Ответить
  • Не файрятся. Это наверное фиксирование размеров элемента с помощью inline стилей. Нормально.
    Ответить
    • var fix = function(f) { f(f()); }
      fix($(element).width);
      fix($(element).height);
      Чтобы подчеркнуть семантику и скрыть детали реализации.
      Ответить
      • А ж.квери не привязывает методы автоматически к объектам? Хотя, да, кому такое может прийти в голову, это ж ж.скрипт...
        Ну, тогда:
        var f = function (element) {
            return function (f) { f.call(element, f.call(element)); } }($(element));
        f($.prototype.width);
        f($.prototype.height);

        (Скорее всего не заработает, т.как нельзя же так просто взять и объявить методы у прототипа, почти наверняка они добавляются каждому объекту отдельно.
        Ответить
        • Даже так:

          (function($){
              $.fn.trueFix = function() {
                  this.each(function() {
                      $(this).width($(this).width());
                      $(this).height($(this).height());
                  }
              };
          })(jQuery);
          
          $(element).trueFix();
          Ответить
          • Ну так обычный говнокод с повторениями, повторным созданием одинаковых объектов и т.д.
            Ответить
          • Пфф...
            jQuery.fn.fap = function(key){
              return this[key](this[key]());
            }
            
            $(element).fap('width').fap('height');
            Ответить
    • это не подергивание, а явная установка, возможно, вычисленных значений. вебопроблемы-с...
      Ответить
        • Всё правильно. И я даже догадываюсь, для чего это. В вёрстке может быть задано max-height (и|или) min-height, но не задано явно height либо задано в процентах. Тогда этот код жёстко установит height.
          Ответить
          • > Тогда этот код жёстко установит height.
            А когда юзер сделает браузер поуже - весь сайт распидорасит 😉
            Ответить
            • скорее всего нет, догадываюсь, что этот код задан внутри обработчика ресайза, как раз чтобы сайт не пидорасило )
              Ответить
      • Да, вот полигон для демонстрации:
        <div style="width:100%">kokoko</div>
        <div style="max-width:300px">kokoko</div>
        <div style="min-width:300px">kokoko</div>
        
        <script type="text/javascript" src="http://yandex.st/jquery/2.0.3/jquery.min.js"></script>
        <script type="text/javascript">
          $('div').each(function(){
            $(this).append(' style='+$(this).attr('style')+';');
            $(this).append(' width='+$(this).width());
          });
        </script>
        Как бы мы ни задавали width/height, $.width() и $.height() вернут вычисленное значение.
        Ответить
  • Такая контрукция может использоваться для очистки canvas'а (самый быстрый способ). А вообще - да, не надо так делать)
    Ответить
  • - Мы вместе едем на работу в одной маршрутке, только выходим на разных остановках, - объяснил Егорчик.
    Ответить

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

Семь раз отмерь — один отрежь, guest!

    А не использовать ли нам bbcode?


    8