Ответы пользователя по тегу JavaScript
  • Console.log в Sublime Text, как использовать?

    Carduelis
    @Carduelis
    Web-developer, front-end, js, less
    Ты пишешь код в редакторе, а смотреть его должен в консоли developers tools в браузере.
    1. Нажми в браузере ctrl+shift+i, перейди во вкладку консоль и вставь туда свой код из Sublime, заработало?
    2. Если были ошибки, проверь код, где ошибка
    3. Если код сработал, посмотри, подключен ли .js-файл в .html-файл, тот ли файл ты открываешь.
    4. Можешь иногда (это вредный совет) пользоваться alert() вместо console.log();
    P.S.: Надеюсь, ты не тролль 80-lvl
    Ответ написан
    6 комментариев
  • Как получить NULL в JS?

    Carduelis
    @Carduelis
    Web-developer, front-end, js, less
    Никакого DOM'а, никаких navigator.getGamepads()
    "a".match("b") // null
    Ответ написан
    Комментировать
  • JavaScript не получает массивы PHP в формате JSON. Как это исправить?

    Carduelis
    @Carduelis
    Web-developer, front-end, js, less
    Надо указать, что скрипт ожидает именно json, а не plaintext:
    $.get({
       url: 'url',
       dataType: 'json'
    })
        .success(function(){})
        .fail(function(){});

    либо можно использовать шорткат для этого:
    $.getJSON('url')
        .success(function(){})
        .fail(function(){});
    Ответ написан
    Комментировать
  • Почему babel так делает?

    Carduelis
    @Carduelis
    Web-developer, front-end, js, less
    Данный код ни до сборки, ни после не будет работать, по причине того, что контекст this -- это не dom-элемент, а родитель данной конструкции (скорее всего - объект window). UPD. babel посчитал, что родительский объект (на который ссылается this) не определен (т.е. undefined) и сократил это выражение до void 0, дающее тот же эффект. Таким же образом минификаторы превращают false в !!0

    Чтобы ваш код заработал, нужно обратиться к объекту события:
    $(".navbar-toggle").on("click", event => {
      $(event.currentTarget).toggleClass("active");
    })

    Но зачем использовать стрелочные функции там, где они не нужны?
    Ответ написан
    2 комментария
  • Как не вызвать функцию автоматически?

    Carduelis
    @Carduelis
    Web-developer, front-end, js, less
    function roar(event) {
       console.log(event)
    }
    document.querySelector(".north").addEventListener("click", roar);

    Так в roar передастся объект события. И функция будет вызвана только по клику.
    P.S.: очень вопрос меня волнует. Что происходит в голове у людей, которые используют вместо наречия "автоматически" прилагательное "автоматический"? Это какой-то особенный ген, лишняя хромосома? В чем прикол этого?
    Ответ написан
    1 комментарий
  • Как сделать веб-редирект то на один, то на другой веб-адрес с вероятностью 50/50?

    Carduelis
    @Carduelis
    Web-developer, front-end, js, less
    Если идет речь о переадресации на стороне клиента, то:
    первое, вам нужно воспользоваться встроенной функцией window.open(),
    второе, вызывать ее с учетом результата выполнения функции Math.random()
    if (Math.random() > 0.8) {
         window.open('//ya.ru');
    } else {
         window.open('//google.com');
    }
    Ответ написан
    3 комментария
  • Есть ли лучший вариант чем использование href="tel:…"?

    Carduelis
    @Carduelis
    Web-developer, front-end, js, less
    Если вы напишете просто телефон текстом, и поставите
    <meta name="format-detection" content="telephone=yes"/>
    , то iOs автоматически обернет его в тег <a>, тем самым модифицировав ваш код.
    Правильно и семантично будет понять, чем же не устраивает ссылка для телефона. И разобраться в той причине, по которой вы хотите избавиться от нее.

    Если же ваша задача - оптимизировать, то убирая ссылку, вы делаете только хуже. Есть определенные стандарты и поведения браузеров, следуйте им.

    P.S.: Чтобы сделать кликабельным элемент не-ссылку и не-кнопку на iOs, нужно добавить к нему curpor: pointer;
    Ответ написан
    3 комментария
  • Как навесить обработчики событий на вставляемый html-код?

    Carduelis
    @Carduelis
    Web-developer, front-end, js, less
    Вопрос детский, но я сам так же тупил вначале.
    Вам нужно делегирование событий. Вешаете обработчик не на кнопки, а на родительский тег кнопок. Хоть на <body>. Конечно, вешать на самый корень плохо, по причинам производительности и разграничения кода. Но вешать на тег-родитель, скажем, ленты новостей - дело благое.
    Синтаксис на jQuery выглядит так:
    $('ul.news-list').on('click',' div > a.button', function() {
    // 
    });
    Ответ написан
    2 комментария
  • Как присвоить несколько ID?

    Carduelis
    @Carduelis
    Web-developer, front-end, js, less
    Самым простым решением является добавление класса, например myTab к каждому табу, $('.myTab').css(). Точно так же, удобнее с точки зрения разработки воспользоваться атрибутами, отказавшись от id.
    <a class="myTab" data-id="1"></a><a class="myTab" data-id="2"></a>

    Производительность селектора # многократно выше селектора атрибутов, но при использовании в контексте табов, которых не может быть очень много -- совершенно не существенна.
    Ответ написан
    Комментировать
  • Что значит "вэб-технолог"?

    Carduelis
    @Carduelis
    Web-developer, front-end, js, less
    Не согласен с предыдущей (первой по времени) веткой комментариев.
    Данное понятие стоит разбить по составляющим:
    1. Веб
    2. Технолог

    Согласно википедии, технолог, или инженер-технолог:
    инженер, занимающийся разработкой, организацией того или иного производственного процесса. Также может разрабатывать какую-то определенную технологию.

    Важная составляющая - это производственный процесс. В контексте веба - это сайтостроение или создание частей сайта. В отличие от программиста или дизайнера, веб-технолог больше исполнитель, нежели созидатель. Ему ставится задача, и он ее выполняет. Технолог решает задачу, а не ставит ее. Как верстальщик. Верстальщик в полиграфии тоже не придумывает, он выполняет задачу.
    А вот программист, дизайнер могут создавать новое. Часть которого он может делегировать технологу. Чтобы последний, в результате, нашел способ это реализовать.
    Ответ написан
    2 комментария
  • Wordpress дублирование товара в корзине, как решить?

    Carduelis
    @Carduelis
    Web-developer, front-end, js, less
    Без реального примера ничего не скажешь. Телепаты на каникулах. Но, если подумать, возможно, обработчик добавления товара в корзину вешается не только на кнопку "Добавить в корзину", но и на другие ссылки. Возможно, тег <a> не закрыт.
    Ответ написан