Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 13.01.2018, 14:55
Аспирант
Отправить личное сообщение для Dark Souls Посмотреть профиль Найти все сообщения от Dark Souls
 
Регистрация: 06.03.2017
Сообщений: 37

addEventListener - стремно работает
Столкнулся с интересной работой addEventListener:
document.addEventListener('click', function (e) {
    var i, p, b, k = e.target.id;
    
    if (k === 'gnl' || 'set' || 'pgn') {
        p = e.target.parentNode.className;
        b = e.target.parentNode.firstChild.textContent;
        if (k === 'pgn') addBlockMenu(b);
        // alert(k);
    }
    if (k === 'prev' || 'next') {
        var len;
        p = e.target.parentNode.parentNode.id;
        b = e.target.className.split(' ')[1];
        len =  e.target.previousSibling.textContent;
        if (k === 'prev') i = --i < 0 ? --len : --i;
        if (k === 'next') i = ++i > len ? 0 : ++i;

        // alert(i)
    }
    printMenuString(p,b,i);
}, false);


printMenuString - не срабатывает.
Если ее вставить в первый блок if - работает.
Если во второй if - отрабатывает вначале из первого if, потом из второго.

Тоже самое и с alert, если клинуть по next || prev, срабатывает alert из первого if, а потом из второго.

???
Ответить с цитированием
  #2 (permalink)  
Старый 13.01.2018, 15:27
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,723

У вас условия кривые, блоки будут выполняться всегда.
Почему "printMenuString" не вызывается - смотрите консоль, наверняка скрипт где-то падает с ошибкой.

upd.
if(['gnl','set','pgn'].indexOf(k)>-1)

Последний раз редактировалось Nexus, 13.01.2018 в 15:39.
Ответить с цитированием
  #3 (permalink)  
Старый 13.01.2018, 15:31
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Сообщение от Dark Souls
if (k === 'gnl' || k === 'set' || k === 'pgn')
Ответить с цитированием
  #4 (permalink)  
Старый 13.01.2018, 15:55
Аспирант
Отправить личное сообщение для Dark Souls Посмотреть профиль Найти все сообщения от Dark Souls
 
Регистрация: 06.03.2017
Сообщений: 37

ГрандМерси!!! Работает!
Ответить с цитированием
  #5 (permalink)  
Старый 14.01.2018, 03:31
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

Сообщение от рони Посмотреть сообщение
когда то я так же пытался условия составить:
а еще так
if (1>a>.5 )
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
JS: работает на сервере, не работает из папки -majestic- Общие вопросы Javascript 2 02.08.2012 14:41
Не работает push! Динамическая вставка TSEH25 ExtJS 5 03.07.2012 13:00
jQyery функция странно работает! Midel Общие вопросы Javascript 4 08.04.2012 13:40
помогите найти ошибку (работает в IE но не работает в Firefox) Len4ik Javascript под браузер 2 11.05.2010 15:41
ajax запросы, работает на одних компах и не работает на других vtornik23 AJAX и COMET 2 22.03.2010 18:22