Код (Javascript): var top = $('#top'); var premium = $('#premium'); var raise = $('#raise'); var color = $('#color'); var blocks = [top, premium, raise, color]; Собрал элементы в массив. Код (Javascript): console.log(blocks); выдает что в массиве вот что: [Window, jQuery.fn.init(1), jQuery.fn.init(1), jQuery.fn.init(1)] На Window не вешается метод .on() Не пойму почему он Window то, хотя абсолютно такой же блок как и другие.
Потому что жиквери возвращает не DOM-объекты, а JQuery-объекты. А это нифига не одно и то же. И у нее свое видение происходящего. И да, жиквери не нужна.
Решил. top - это какая-та стандартная херня. Ввод top в консили выводит этот самый Window. Переименование переменной помогло.
я сначала пытался все делать на нативном javascript)) теперь все что можно сделать на JQuery делаю на нем)) запарился разбираться с кроссбраузерностью)) да и JQuery проще и синтаксис лучше)) будто для дебилов писалось))
Всё работает , да и не может не работать. При чем, будет работать как с переменной top, так и с элементом массива - blocks[0]. Возможно, что переменная где-то переопределяется.
В связи с этим еще одно предположение: Код (Javascript): var top = 10; var tоp = 50; console.log(top); // 10 console.log(tоp); // 50 Почему? Потому, что первая переменная с латинской "o", а вторая - с кириллической.