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

    −47

    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
    dom.listener('animationend', function(){
    	alert('ЗАЕБОК');
    });
    
    Object.prototype.listener = function(type, callback){
    	let token = 'listener' + rand(1000, 9999);
    	this.setClass(true, token);
    	this.addEventListener(type, done);
    
    	function done(event){
    		if(event.path[0].className.indexOf(token) == -1)return;
    		this.setClass(false, token);
    		this.removeEventListener(type, done);
    		isCallback(callback);
    	}
    };

    Надо было по окончанию анимации запустить функцию. Обычный listener также слушал дочерние элементы, а не только тот, на который я его повесил, в результате, все шло по писте.

    А вот мой glistener вешает на нужный X элемент класс вида 'listener49512', и вызывает callback, если событие произошло именно у X элемента с этим классом, а не где-то еще.

    p.s. setclass, iscallback - мои говнотулы, потому что jq и прочее дерьмо для слабаков!

    Запостил: nwton, 10 Марта 2017

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

    • Классодебилы-классодебилушки.
      https://developer.mozilla.org/en-US/docs/Web/API/Element/id? Не, не слышали.
      Ответить
      • смешно. дергать id не менее убого, чем ставить доп класс. при этом, надо еще проверить, есть ли id)
        Ответить
    • > token = 'listener' + rand(1000, 9999);
      Сжечь и закопать.
      Ответить

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