2016-05-11 4 views
0

В настоящее время я создаю флеш-галерею и каждый раз, когда нажимается новая кнопка, чтобы увидеть новую вспышку, я бы хотел, чтобы страница перезагрузилась, чтобы отобразить новое объявление. Я устранил проблему с помощью console.log и обнаружил, что переменные sessionStorage настроены правильно, но когда наступает время для вызова функций back/rand/next(), он просто останавливается на своих дорожках. Любые советы будут иметь большое значение.Функция Javascript не может быть вызвана при сравнении значения sessionStorage

(Изменить) Он получает console.log ('Rand button ses received!');

КОД

var flashcon, test, temp; 
    var back, rand, next; 

    back = document.getElementById('back'); 
    rand = document.getElementById('rand'); 
    next = document.getElementById('next'); 
    flashcon = document.getElementById('flashcon'); 

    function init() { 
     if (sessionStorage.getItem('ref') == 1) { 
      console.log('Back button ses received!'); 
      back(); 
     } else if (sessionStorage.getItem('ref') == 2) { 
      console.log('Rand button ses received!'); 
      rand(); 
     } else if (sessionStorage.getItem('ref') == 3) { 
      console.log('Next button ses received!'); 
      next(); 
     } else { 
      console.log('First time or a reset'); 
     } 

     // Scripts for the buttons 
     back.onclick = function() { 
      console.log('Back button pressed'); 
      sessionStorage.setItem('ref', 1); 
      location.reload(); 
     }; 
     rand.onclick = function() { 
      console.log('Rand button pressed'); 
      sessionStorage.setItem('ref', 2); 
      location.reload(); 
     }; 
     next.onclick = function() { 
      console.log('Next button pressed'); 
      sessionStorage.setItem('ref', 3); 
      location.reload(); 
     }; 
    } 

    // What switches the flashs 
    function back() { 
     console.log('Back function'); 
     sessionStorage.clear(); 
     if (c == 0) { 
      c = paths.length; 
     } 
     c--; 
     displayFiles(); 
     download(); 
    } 

    function rand() { 
     console.log('Rand function'); 
     sessionStorage.clear(); 
     if (c == paths.length - 1) { 
      c = -1; 
     } 
     c++; 
     displayFiles(); 
     download(); 
    } 

    function next() { 
     console.log('Next function'); 
     sessionStorage.clear(); 
     temp = c; 
     while (c == temp) { 
      c = Math.floor(Math.random() * paths.length); 
     } 
     displayFiles(); 
     download(); 
    } 

ответ

2

У вас есть переменные и функции Преобладающая имена друг друга.

back, next, rand - все операторы функций, которые поднимаются выше ... = document.getElementById('...') для соответствующих имен переменных.

Измените имена функций или измените имена объектов элементов, а затем повторите попытку.

Поэтому в основном превратить это:

var back, rand, next; 

back = document.getElementById('back'); 
rand = document.getElementById('rand'); 
next = document.getElementById('next'); 

в этом:

var $back, $rand, $next; 

$back = document.getElementById('back'); 
$rand = document.getElementById('rand'); 
$next = document.getElementById('next'); 

и, конечно, редактировать совпадающие места следующие в коде, так что они указывают на правой переменной.

+0

Спасибо, что решили мою проблему. Я не знаю, почему я этого не заметил. Сайт теперь работает, за исключением моей спины и следующих кнопок, которые переходят к следующему элементу массива, чтобы отображать его так, что это отстой, но я исправлю его, чтобы получить какие-либо советы для этого? Однако моя случайная кнопка работает. – cosmichero2025

+0

Возможно, я мог бы диагностировать его, если бы у меня было больше контекста - функции ссылаются на вещи, которые не определены в коде, который вы отправили (например, 'c' и' paths') – Deryck

+0

О, нет, все хорошо, я просто не включил их в пример, потому что они не нужны для вопроса. Сам сайт работает, а не математика для следующих и обратных кнопок, которые я думаю, так как она обновляется каждый раз, когда она не может двигаться вперед в массиве, но случайная кнопка может перемещаться. Bc не имеет значения, какой флеш-файл он приземляется , – cosmichero2025

Смежные вопросы