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

    +143

    1. 1
    2. 2
    3. 3
    $('table.list th').each(function () {
    			$(this).attr('class', $('> div', this).remove().text()); // хе-хе
    		});

    берем див на первом уровне, удаляем его, читаем с него текст (работает, не ругайтесь) и подставляем его в класс текущему элементу

    Serabas, 08 Апреля 2013

    Комментарии (28)
  2. JavaScript / Говнокод #12849

    +163

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    var z=fggh.getElementsByTagName("*");
    for(iii=0; iii<z.length; z++)
    if(z[iii].parentNode==fggh){
    //z[iii] - непосредственный потомок fggh, и мы с ним что-то делаем!
    …
    }

    Раз народ решил, что я незаслуженно обижаю юниора, то вот вам ещё более шокирующий пример подобного кода от программиста, с которым мы вместе работали несколько лет назад в одной московской фирме. Тут, к сожалению, воспроизвожу по памяти, но очень близко к оригиналу.

    torbasow, 04 Апреля 2013

    Комментарии (7)
  3. JavaScript / Говнокод #12847

    +156

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    if (e.button in [-1, -1, -1]) { // попробуйте теперь сообразите, почему true
    				e.preventDefault();
    				var rel = this.rel.split(';'),
    					fn;
    				switch (e.button) {
    				case 0:
    					fn = 'attr';
    					break;
    				case 1:
    				case 2:
    					fn = 'removeAttr';
    					break;
    				default:
    					return false;
    				}
    				$('td.mod[rel="' + rel[0] + '"] input[rel="' + rel[1] + '"]').each(function () {
    					if (fn === 'removeAttr' && $(this).attr('rel') === 'view') { // Я маразматик
    						var parts = /(chk\[\d+\]\[\d+\])\[view\]/.exec(this.id),
    							p = ['add', 'edit', 'del'],
    							i;
    						for (i in p) {
    							$('#' + parts[1].replace(/[[\]]/g, "\\$&") + '\\[' + p[i] + '\\]')[fn]('checked');
    						}
    					}
    					$(this)[fn]('checked', 'checked');
    				});
    				return false;
    			}

    ГК, не?
    первая строка вот... текущий проект, сижу с ним на данный момент. Почему захотелось так сделать, объяснить не могу. Но работает, ведь

    Serabas, 04 Апреля 2013

    Комментарии (8)
  4. JavaScript / Говнокод #12845

    +145

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    var detailsTable = document.getElementById("detailsTable").tBodies[0];
    var childs = [], j=0;
    for (var i = 0; i < detailsTable.childNodes.length; i++)
    	if  (detailsTable.childNodes[i].nodeType == 1){
    		childs[j++] = detailsTable.childNodes[i];
    	}
    childs[0].childNodes[1].innerHTML = ''

    Наткнулся в нашем проекте. Так юниор получал доступ к ячейкам таблицы. Видно, он не знал про коллекции rows и cells.

    torbasow, 03 Апреля 2013

    Комментарии (12)
  5. JavaScript / Говнокод #12830

    +152

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    function TimeViewport(rootElement, container, canvas, minZoom, maxZoom)
    {
    	this.container = container;
    	this.rootElement = rootElement;
    	this.lowPassAlpha = 0.38;
    	this.canvas = canvas;
    	this.minZoom = minZoom;
    	this.maxZoom = maxZoom;
    	this.zoom = minZoom;
    	this.size = Math.min(1.0, 1.0 / Math.pow(2, this.zoom));
    	this.left = 0.5 - this.size / 2.0;
    	this.right = 0.5 + this.size / 2.0;
    	this.mouse = {
    		isDown : false,
    		panning : false,
    		velocityMode : false,
    		downPos : {x : 0, y : 0}, 
    		movePos : {x : 0, y : 0},
    		lastMovePos : {x : 0, y : 0}
    	};
    	var self = this;
    	this.filtered = {
    		"left" : 0.5 - self.size / 4.0,
    		"right" : 0.5 + self.size / 4.0
    	};
    	this.lastRedrawTime = (new Date()).getTime();
    	this.maxRedrawInterval = 500;
    	setInterval(function () { if (self.doLowPass != null) self.doLowPass(); }, 17);
    	this.canvas.onmousedown = function(event) { self.mouseDown(event) };
    	this.canvas.onmousewheel = function(event) { self.onMouseWheel(event); };
    	var oldMouseMoveHandler = this.rootElement.onmousemove;
    	this.rootElement.onmousemove = function (event) {
    		if (self.mouseMove) self.mouseMove(event);
    		if (oldMouseMoveHandler != null) oldMouseMoveHandler(event);
    	};
    	var oldMouseUpHandler = this.rootElement.onmouseup;
    	this.rootElement.onmouseup = function (event) {
    		if (self.mouseUp) self.mouseUp(event);
    		if (oldMouseUpHandler != null) oldMouseUpHandler(event);
    	};
    	var oldMouseLeaveHandler = this.rootElement.onmouseleave;
    	this.rootElement.onmouseleave = function (event) {
    		if (self.mouseLeave) self.mouseLeave(event);
    		if (oldMouseLeaveHandler != null) oldMouseLeaveHandler(event);
    	};
    };

    Очередной велосипедик.

    just_nameless, 30 Марта 2013

    Комментарии (5)
  6. JavaScript / Говнокод #12817

    +151

    1. 1
    if (Scene.generatedFast || (typeof generatedFast != "undefined" && generatedFast) )

    Lure Of Chaos, 28 Марта 2013

    Комментарии (1)
  7. JavaScript / Говнокод #12807

    +156

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    $.post("include/show_watching.php",
        function(data) {
            $('#content').empty().append(data);
        }
    );

    Вот такой вот POST-запрос.

    Stallman, 26 Марта 2013

    Комментарии (15)
  8. JavaScript / Говнокод #12774

    +161

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    function printf(format, value) {
          return format.replace(/%s/, value.toString());
        }
    
        return {
    
          updateProgressBar: function (percentage) {
            console.log("update \"progressBar\" status");
            progressBar.innerHTML = printf("<p>%s %</p>", percentage);
          }
    
        };

    __proto__, 21 Марта 2013

    Комментарии (15)
  9. JavaScript / Говнокод #12762

    +164

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    $(document).ready(function(){
    		//50% прозрачность иконкам голосования
    
    	var minusBig   = $(".photo-rate-block-minus"),
    		plusBig    = $(".photo-rate-block-plus"),
    		minusSmall = $(".photo-rate-block-minus-small"),
    		plusSmall  = $(".photo-rate-block-plus-small");
    
    	$(minusBig).css('opacity', '0.5');
    	$(plusBig).css('opacity', '0.5');
    	$(minusSmall).css('opacity', '0.5');
    	$(plusSmall).css('opacity', '0.5');
    
    	$(".photo-rate-block-minus, .photo-rate-block-plus, .photo-rate-block-minus-small, .photo-rate-block-plus-small").hover( function(){
    		$(this).css('opacity', '1');
    	}, function(){
    		$(this).css('opacity', '0.5');
    	});
    });

    CSS для слабаков

    DrFreez, 17 Марта 2013

    Комментарии (7)
  10. JavaScript / Говнокод #12732

    +153

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    var currentTime = (new Date()).getTime();
                var diff = currentTime - this.startTime;
    
                var min = Math.floor(Math.floor(diff/1000)/60);
                if (min < 10)
                    min = "0"+min;
                var sec = Math.floor(diff/1000)%60;
                if (sec < 10)
                    sec = "0"+sec; 
    
                this.timeLabel.setString("TIME " + min + ":" + sec);

    Классика практически, моего творения. Как это можно сделать по-человечески на JS? Всякие jQuary не катят, ибо js встраиваемый.

    krypt, 12 Марта 2013

    Комментарии (37)