JS equivalent for jQuery one()

后端 未结 5 1010
执念已碎
执念已碎 2020-12-14 22:34

Can someone point me towards a solution for the following? I\'m trying to find a JS equivalent for this jQuery code:

var formSelector = \'my selector here\';         


        
5条回答
  •  我在风中等你
    2020-12-14 23:27

    Using ES6 and some closure this is a nice way to do it.

    const button = document.querySelector('button');
    
    function composeHandler(element, event, handler, ...captureArgs) {
      return function handlerFunc (...args) {
      	handler(...args);
        element.removeEventListener(event, handlerFunc, ...captureArgs);
      }
    }
    
    function addEventListenerOnce(element, event, handler, ...captureArgs) {
    	element.addEventListener(event, composeHandler(element, event, handler, ...captureArgs), ...captureArgs);
    }
    
    addEventListenerOnce(button, 'click', (e) => alert('clicked on button ' + e.target.innerText), true)

提交回复
热议问题