Emulate jQuery “on” with selector in pure javascript

前端 未结 3 1506
时光取名叫无心
时光取名叫无心 2020-12-05 19:39

I would emulate in pure javascript the main functionality of jQuery .on( events , selector , data) method.

For example

$(document).on(\'click\',\'.         


        
3条回答
  •  轻奢々
    轻奢々 (楼主)
    2020-12-05 20:18

    Easy and short code:

    function onEvt(type, callback) {
        if (document.attachEvent) {
            document.attachEvent("on" + type, function (e) {
                callback(e.target);
            });
        } else {
            document.addEventListener(type, function (e) {
                callback(e.target);
            }, false);
        }
    }
    

    Call the function like this:

    onEvt('click', function(elem){ // click, mouseover etc...
        // for class
        if(elem.classList.contains('classname')){
            // do stuff
        }
        // for attribute
        if(elem.hasAttribute('target')){
            // do stuff
        }
    });
    

提交回复
热议问题