Подтвердить что ты не робот

Версия JavaScript jQuery для JavaScript в Vanilla.

Так что, возможно, я просто не ищу в нужных местах, но я не могу найти хорошее объяснение того, как сделать эквивалент jQuery

$('a').click(function(){
    // code here
});

в обычном старом JavaScript?

В принципе, я хочу запускать функцию каждый раз, когда нажимается тег a, но у меня нет возможности загружать jQuery на страницу, чтобы сделать это выше, поэтому мне нужно знать, как это сделать, используя простой JavaScript.

4b9b3361

Ответ 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;
}

Вы можете увидеть это в действии здесь.