Версия JavaScript jQuery для JavaScript в Vanilla.
Так что, возможно, я просто не ищу в нужных местах, но я не могу найти хорошее объяснение того, как сделать эквивалент jQuery
$('a').click(function(){
// code here
});
в обычном старом JavaScript?
В принципе, я хочу запускать функцию каждый раз, когда нажимается тег a
, но у меня нет возможности загружать jQuery на страницу, чтобы сделать это выше, поэтому мне нужно знать, как это сделать, используя простой JavaScript.
Ответы
Ответ 1
Рабочий пример: http://jsfiddle.net/6ZNws/
HTML
<a href="something">CLick Here</a>
<a href="something">CLick Here</a>
<a href="something">CLick Here</a>
JavaScript:
var anchors = document.getElementsByTagName('a');
for(var z = 0; z < anchors.length; z++) {
var elem = anchors[z];
elem.onclick = function() {
alert("hello");
return false;
};
}
Ответ 2
element.addEventListener('click', function() { ... }, false);
Вам нужно найти элементы и создать петлю для подключения каждого из них.
Ответ 3
Попробуйте выполнить
var clickHandler = function() {
// Your click handler
};
var anchors = document.getElementsByTagName("a");
for (var i = 0; i < anchors.length; i++) {
var current = anchors[i];
current.addEventListener('click', clickHandler, false);
}
Примечание. Как отметил Ӫ _._ out, это не будет работать на IE8 и ниже, поскольку оно не поддерживает addEventListener
.
В IE8 вы можете использовать следующее для подписки на onclick
. Это не идеальная замена, поскольку для этого требуется, чтобы каждый был сотрудником, но он может помочь вам.
var subscribeToOnClick = function(element) {
if (element.onclick === undefined) {
element.onclick = clickHandler;
} else {
var saved = element.onclick;
element.onclick = function() {
saved.apply(this, arguments);
clickHandler.apply(this, arguments);
}
}
}
for (var i = 0; i < anchors.length; i++) {
var current = anchors[i];
subscribeToOnClick(current);
}
Ответ 4
Здесь вы идете:
[].forEach.call( document.querySelectorAll( 'a' ), function ( a ) {
a.addEventListener( 'click', function () {
// code here
}, false );
});
Живая демонстрация: http://jsfiddle.net/8Lvzc/3/
(не работает в IE8)
Кроме того, я рекомендую делегирование событий...
Ответ 5
document.getElementById('elementID').onclick = function(){
//click me function!
}
Ответ 6
Это назначит функции onclick
для каждого элемента a
.
var links = document.getElementsByTagName("a");
var linkClick = function() {
//code here
};
for(var i = 0; i < links.length; i++){
links[i].onclick = linkClick;
}
Вы можете увидеть это в действии здесь.