Помещение частей js в атрибут href
- плохая идея. Лучшая практика заключается в добавлении обработчика с addEventListener
, но здесь вы можете уйти с настройкой onclick
напрямую.
<a href="#" onclick="Foo(event);">Link</a>
и ваша функция будет как
function Foo(e) {
var a = e.target || e.srcElement;
// TODO: stuff
if (e.preventDefault) {
e.preventDefault();
}
else {
return false;
}
}
поэтому при нажатии на ссылку, Foo
называется с событием как paremeter. объект события имеет ссылку на исходный элемент, либо как target
в браузерах стандартов, либо srcElement
в IE. Комбинация preventDefault
/return false;
запрещает браузеру «следовать» ссылке на #.
Редактирование: со второй мыслью, поскольку у вас много ссылок, с помощью jquery для добавления обработчиков рекомендуемый способ, вероятно, лучше (хотя первое решение по-прежнему прекрасное).
Можете ли вы привести пример того, где и как вы ссылаетесь на '$ (this)'? –