На каждую ссылку свой бработчик
let linkNodes = document.querySelectorAll('a[rel=slide]') // находим все ссылки с rel=slide
let slideLinks = [].slice.call(linkNodes)
slideLinks.forEach(link=>{
link.addEventListener('click', function(evt){ // вешаем на каждую обработчик
let link = evt.target
console.log('clicked', link.href)
})
})
Или один на всех
document.addEventListener('click', function(evt){ // обработчик кликов привязан к document
if (evt.target.rel == 'slide') { // если у кликнутого элемента есть rel=slide
let link = evt.target
console.log('clicked', link.href)
}
})
В ваших примерах код
onclick = slideshow(this)
вызывает функцию slideshow и ее значение уже присваивает.
Если написать
onclick = slideshow;
то получится то, что вы хотели.