1. 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) RSS

    • обрабатывается событие mousedown
      Ответить
    • комменты прямо в коде на данный момент
      Ответить
    • Первая строка мне нравится, чо. Клево же!
      Ответить
      • я сначала вообще хотел так:
        if (e.button in [ , , ])
        но выдавало false, хотя length у массива 3
        Эх, Javascript)
        Ответить
        • length три, но если сделать console.dir такому массиву, то все станет понятно, там нет ничего по индексам. in же на наличие индексов смотрит
          Ответить
    • >попробуйте теперь сообразите, почему true
      Исправил, чтобы лучше читалось:
      if ([true, true, true][e.button]) {
        // ...
      }
      Ответить
      • замечательно! Завтра исправлю в проекте.... и © scriptin поставлю))))
        Ответить

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