Полученное вами сообщение об ошибке - именно то, что вы получите, пытаясь запустить функции jQuery на объектах, не являющихся jQuery.Вы можете легко исправить это, используя индекс цикла for для доступа к объектам jQuery в переменной array
:
function addEventHandler(array, type, func) {
var len = array.length;
for (var i = 0; i < len; i++) {
array.eq(i).bind(type, func);
}
}
sections = $('#sponsorship > div .section')
addEventHandler(sections, 'click', function() {
console.log(this);
});
Изменение array[i].bind(type, func);
на array.eq(i).bind(type, func);
обеспечивает доступ к объекту jQuery, а не к обычномуJS-объект, который удалит полученную ошибку.
Вот jsfiddle вышеуказанного изменения вашего кода: http://jsfiddle.net/jfUpB/1/