Как вызвать функцию при клике по ссылке

184
13 августа 2018, 13:30

Есть ссылки

<a href="#tab1">Link 1</a> 
<a href="#tab2">Link 2</a> 
<a href="#tab3">Link 3</a>

Мне нужно вызвать разные функции, в зависимости на какую ссылку кликнули, так как подставить ссылкам id нет возможности, нужно определять ссылку по href

Как это реализовать?

Answer 1

используйте селектор с указанным значением атрибута, например a[href="#tab1"]

$("a[href='#tab1']").click(function(e){ 
   e.preventDefault(); 
   console.log('tab1'); 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
<a href="#tab1">Link 1</a> 
<a href="#tab2">Link 2</a> 
<a href="#tab3">Link 3</a>

Answer 2

const tab1Fn = () => console.log('tab1'); 
const tab2Fn = () => console.log('tab2'); 
const tab3Fn = () => console.log('tab3'); 
document.querySelectorAll('a') 
  .forEach(a => a.addEventListener('click', ev => { 
  let id = ev.target.getAttribute('href').slice(1); 
  switch (id) { 
    case 'tab1': tab1Fn(); break; 
    case 'tab2': tab2Fn(); break; 
    case 'tab3': tab3Fn(); break; 
    default: return; 
  } 
  ev.preventDefault(); 
}));
<a href="#tab1">Link 1</a> 
<a href="#tab2">Link 2</a> 
<a href="#tab3">Link 3</a>

READ ALSO
Invalid number of arguments to Solidity function

Invalid number of arguments to Solidity function

Не получается запустить функцию контрактаИспользую web3

201
Прокрутка контента мышкой

Прокрутка контента мышкой

Есть строка в которой контент очень длинный по ширинеНужно что-то придумать чтоб передвигать его мышкой

186
Помогите с паралаксом

Помогите с паралаксом

Помогите чтоб при скролле до блоков, они выезжали слева/справа и становились на свои местаНо именно чтоб выезжали постепенно во время скролла,...

184