За последние 24 часа нас посетили 31968 программистов и 1380 роботов. Сейчас ищут 853 программиста ...

Почему-то другой тип данных

Тема в разделе "JavaScript и AJAX", создана пользователем bikerlex, 8 июн 2017.

  1. bikerlex

    bikerlex Активный пользователь

    С нами с:
    2 дек 2014
    Сообщения:
    344
    Симпатии:
    40
    Код (Javascript):
    1. var top           = $('#top');
    2. var premium = $('#premium');
    3. var raise         = $('#raise');
    4. var color         = $('#color');
    5.  
    6. var blocks = [top, premium, raise, color];
    Собрал элементы в массив.
    Код (Javascript):
    1. console.log(blocks);
    выдает что в массиве вот что:
    [Window, jQuery.fn.init(1), jQuery.fn.init(1), jQuery.fn.init(1)]

    На Window не вешается метод .on()
    Не пойму почему он Window то, хотя абсолютно такой же блок как и другие.
     
  2. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Потому что жиквери возвращает не DOM-объекты, а JQuery-объекты. А это нифига не одно и то же. И у нее свое видение происходящего.
    И да, жиквери не нужна.
     
  3. bikerlex

    bikerlex Активный пользователь

    С нами с:
    2 дек 2014
    Сообщения:
    344
    Симпатии:
    40
    Решил. top - это какая-та стандартная херня. Ввод top в консили выводит этот самый Window. Переименование переменной помогло.
     
    igordata нравится это.
  4. Алекс8

    Алекс8 Активный пользователь

    С нами с:
    18 май 2017
    Сообщения:
    1.730
    Симпатии:
    359
    я сначала пытался все делать на нативном javascript)) теперь все что можно сделать на JQuery делаю на нем)) запарился разбираться с кроссбраузерностью)) да и JQuery проще и синтаксис лучше)) будто для дебилов писалось))
     
  5. Deonis

    Deonis Старожил

    С нами с:
    15 фев 2013
    Сообщения:
    1.521
    Симпатии:
    504
    Всё работает , да и не может не работать. При чем, будет работать как с переменной top, так и с элементом массива - blocks[0]. Возможно, что переменная где-то переопределяется.
     
  6. bikerlex

    bikerlex Активный пользователь

    С нами с:
    2 дек 2014
    Сообщения:
    344
    Симпатии:
    40
    @Deonis, ну хз, скорее всего. Версия jquery правда другая. Массивы немного отличаются.

    2017-06-09_03-09-17.png
     
  7. Deonis

    Deonis Старожил

    С нами с:
    15 фев 2013
    Сообщения:
    1.521
    Симпатии:
    504
    В связи с этим еще одно предположение:
    Код (Javascript):
    1. var top = 10;
    2. var tоp = 50;
    3.  
    4. console.log(top); // 10
    5. console.log(tоp); // 50
    Почему? Потому, что первая переменная с латинской "o", а вторая - с кириллической.
     
    mahmuzar, denis01 и igordata нравится это.
  8. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
  9. bikerlex

    bikerlex Активный пользователь

    С нами с:
    2 дек 2014
    Сообщения:
    344
    Симпатии:
    40
    Кириллица жирнее, в хроме по крайней мере. =)
    https://jsfiddle.net/h274p7y4/1/
     
  10. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    скорее всего у шрифта нет кириллицы просто, браузер рисует эти символы другим шрифтом