I 'd предложить использовать ненавязчивый JavaScript, перемещая обработку событий от вашего HTML:
function doSomething(){
console.log("You clicked on the " + this.tagName.toLowerCase() + " element.");
}
var link = document.getElementById('aElementID');
link.onclick = doSomething;
JS Fiddle demo.
Это, однако, требует id
на a
элемент:
<a href="#paragraphSectionId" id="aElementID">Go to the paragraph</a>
Вы можете, однако, использовать имя-класса, а, хотя это предполагает связывание функциональность нескольких элементов, с for
петли (или похожие); учитывая a
элементы, имеющие форму:
<a href="#paragraphSectionIdOne" class="linkClassName">Go to the paragraph</a>
<a href="#paragraphSectionIdTwo" class="linkClassName">Go to the other paragraph</a>
JavaScript стал бы:
function doSomething(){
console.log("You clicked on the " + this.tagName.toLowerCase() + " element.");
}
var links = document.getElementsByClassName('linkClassName');
for (var i = 0, len = links.length; i < len; i++){
links[i].onclick = doSomething;
}
JS Fiddle demo.
Вы даже можете привязать обработку событий к элементу-предшественнику и основывать ответ, по которому элемент получил событие; это позволило бы HTML формы:
<div id="arbitraryAncestorElement">
<a href="#one">Go to One</a>
<ul>
<li><a href="#two">Go to Two</a></li>
<li><a href="#three">Go to Three</a></li>
</ul>
</div>
С JavaScript:
function doSomething(event){
if (event.target.tagName.toLowerCase() === 'a') {
console.log("You clicked on an 'a' element.");
}
}
var ancestor = document.getElementById('arbitraryAncestorElement');
ancestor.onclick = doSomething;
JS Fiddle demo.
Первый шаг: замените 'javascript:' на обработчик реального события –