JSFiddle - React, Tailwind, and code Playground
by podgorniy
HTML
<div class="text published visible">
<ul>
<li><a href="http://freetonik.com/blog/all/advertisers/">Про рекламщиков</a>. Сам я не люблю их.</li>
<li><a href="http://lenta.ru/articles/2013/04/26/anonymity/">Про tor</a> от разработчика.</li>
<li><a href="http://habrahabr.ru/post/178707/">Год без интернета</a>. Парень отказался от интернета, чтобы оценить влияние сети на себя.</li>
<li><a href="http://habrahabr.ru/post/178463/">Стартапер</a> о своей жизни без цензуры (истории неуспеха сохранены, что является редкостью в подобного рода статьях).</li>
<li>Экономические потрясения в <a href="http://habrahabr.ru/company/apps4all/blog/179161/">диабло</a> и <a href="http://habrahabr.ru/post/178721/">EVE Online</a>.</li>
</ul>
<p>Следующий подобный пост — как только наберется еще 5 ссылок.</p>
</div>
JavaScript
function delegate (handlerNode, eventName, handlerCondition, handler) {
var hadlerWrapper;
hadlerWrapper = function (event) {
var target;
event = event || window.event;
target = event.target || event.srcElement;
while (target !== handlerNode) {
if (handlerCondition(target)) {
handler.call(target, event);
}
target = target.parentNode;
}
};
if (handlerNode.addEventListener) {
handlerNode.addEventListener(eventName, hadlerWrapper, false);
} else if (handlerNode.attachEvent) {
handlerNode.attachEvent('on' + eventName, hadlerWrapper);
}
}
var links;
var indexOf;
links = document.links;
indexOf = Array.prototype.indexOf;
delegate(document, 'click', function (node) {
return node.nodeName === 'A' && node.href;
}, function (event) {
console.log(indexOf.call(links, this));
if (event.preventDefault) {
event.preventDefault();
} else {
event.returnValue = false;
}
});