cloneNode()
сработает только если слушатели прописаны прямо в атрибутах элемента
<a onclick="alert('Habr')">click me</a>
Слушатели, добавленные элементу через
addEventListener()
скопировать можно примерно
никак.
Так что лучше держать обработчик отдельно, и навешивать их на элементы по мере надобности:
function myClickHandler(event) {
// что-то сделать по поводу клика
}
element1.addEventListener('click', myClickHandler);
element2.addEventListener('click', myClickHandler);
element3.addEventListener('click', myClickHandler);
Или же слушать события выше по дереву, на общем родителе:
<div id="parent">
<button>1</button>
<button>2</button>
<button>3</button>
</div>
и слушать клики на div#parent