Конденсация нескольких щелчков в один

Это мой текущий код:

document.getElementsByName('links')[0].onclick = function (event) {
event = event || window.event;
var target = event.target || event.srcElement,
    link = target.src ? target.parentNode : target,
    options = {index: link, event: event},
    links = this.getElementsByTagName('a');
blueimp.Gallery(links, options);
};

document.getElementsByName('links')[1].onclick = function (event) {
event = event || window.event;
var target = event.target || event.srcElement,
    link = target.src ? target.parentNode : target,
    options = {index: link, event: event},
    links = this.getElementsByTagName('a');
blueimp.Gallery(links, options);
};

Я понимаю, что эта копия и вставка ужасно неэффективны (и будет только хуже, когда мне нужно будет добавить [2].onclick, [3].onclickи т. д.), есть ли способ объединить их все вместе?

Я совершенно невежественный новичок, когда дело доходит до javascript, поэтому, пожалуйста, прости меня, если этот вопрос предельно прост.

Спасибо за ваше время и помощь! Dee

1 ответ

Решение

jQuery, все, что вам нужно сделать, это инкапсулировать дублированный код, например:

<script>
var elements = document.getElementsByName('links');
Array.prototype.forEach.call(elements, function (el) {
    el.onclick = function (event) {
        event = event || window.event;
        var target = event.target || event.srcElement,
            link = target.src ? target.parentNode : target,
            options = {index: link, event: event},
            links = this.getElementsByTagName('a');
        blueimp.Gallery(links, options);
    };
});
</script>
Другие вопросы по тегам