I am trying to addEventListener to all article elements so when they are clicked it turns them into a draggable element.
I'm not using jQuery on this task.
Attempt 1:
document.getElementsByTagName("ARTICLE").addEventListener('click', function(){
document.getElementsByTagName("ARTICLE").setAttribute('draggable', true);});
Attempt 2:
function draggableTrue() {
var addDrag = document.getElementsByTagName("article");
addDrag.setAttribute('draggable', true);
}
//add event listener to articles
var draggableArticles = document.getElementsByTagName("article");
draggableArticles.addEventListener('onclick', draggableTrue);
In both I am getting a "Uncaught TypeError: undefined is not a function" which usually points out I am missing something, but after reading up I can't figure out what.
document.getElementsByTagName returns a collection. So you need to iterate over it to add the event listeners. This collection is native DOM nodes collections and not a jquery collection hence you cannot use the addEventListener on the collection.
var articles = document.getElementsByTagName("ARTICLE");
var eventListener = function(){console.log('clicked an articles')}
for(var i=0; i<articles.length; i++){
articles[i].addEventListener('click', eventListener );
}