Показать сообщение отдельно
  #1 (permalink)  
Старый 06.11.2016, 22:09
Аспирант
Отправить личное сообщение для Ostic Посмотреть профиль Найти все сообщения от Ostic
 
Регистрация: 31.08.2016
Сообщений: 49

Как правильно указать обработчик события?
есть код, создающий следующую структуру:
<div>
  <p>
      <a>ссылка1</a>
  </p>
  <p>
      <a>ссылка2</a>
  </p>
  <p>
      <a>ссылка3</a>
  </p>
</div>

вот, собственно, скрипт:
var arr = localStorage.list ? JSON.parse(localStorage.list) : [];
var len = arr.length;
 
(function createHTML(){
    var div = document.createElement('div');
    div.className = "links-domain";
    document.body.appendChild(div);
    var p;
    var a;
    for (var i=0; i < len; i++){
        p = document.createElement('p');
        p.innerText = (i+1) + ".";
        div.appendChild(p);
        a = document.createElement('a');
        a.href = "http://www." + arr[i].domain;
        a.id = a.innerText = arr[i].name;
        p.appendChild(a);
    }
})();
 
document.addEventListener('DOMContentLoaded', addListener);
function addListener(){
    for (var j=0; j < len; j++){
            var elem = document. getElementById(arr[j].name);
            elem.onclick = clickHandler(elem.href);//function(){chrome.tabs.create({url: elem.href})};
                        //если сделать как в коментарии выше, то открывается только последняя ссылка
    };
}
 
function clickHandler(url_){
        chrome.tabs.create({url: url_});
}

почему открываются сразу все вкладки или
только какая-то одна при клике на любой ссылке?
как в подобных случаях правильно создавать обработчики, да и, вообще, структуры, указанные выше?
Ответить с цитированием