Reputation: 557
It will perform the search two times? Or it will overwrites the first listener?
element.onclick = () => { search(); }
element.onclick = () => { search(); }
or
element.addEventListener('click', () => { search(); })
element.addEventListener('click', () => { search(); })
Upvotes: 0
Views: 79
Reputation: 646
EventListeners will be called in exact order they are attached to the element.
const clicker = document.getElementById('clicker')
clicker.addEventListener('click', () => { alert('Fired first time') })
clicker.addEventListener('click', () => { alert('Fired second time') })
<button id="clicker">Click me</button>
Upvotes: -1
Reputation: 22949
element.onclick = () => {}
overwrites the handler.
If you don't want to overwrite it, use element.addEventListener
instead.
const element = document.querySelector('button')
element.addEventListener('click', e => {
console.log('1st event handler')
})
element.addEventListener('click', e => {
console.log('2nd event handler')
})
<button>Click me</button>
Upvotes: 4
Reputation: 939
Assigning property overwrites the listener:
element.onclick = () => { search(); }
But setting listener like this add the listener in the queue (duplicates also) and they all executes.
element.addEventListener('click',() => { search(); });
Upvotes: 0