2015-11-09 2 views
0

Я получаю сообщение об ошибке в ie8: Object не поддерживает свойство или метод 'addEventListener'. Как я могу это исправить? Я видел добавление инструкции else и изменение addEventListener для attachEvent. Тем не менее, я немного зеленый в стране js и не уверен, куда это должно идти, я попробовал несколько способов.Ошибка addEventListener в IE8

$ (документ) .ready (функция() {

// Off canvas menu 
var $slider = document.querySelector('#slider'); 
var $toggle = document.querySelector('.toggle-nav'); 
var $toggle2 = document.querySelector('nav .toggle-nav'); 
// var $link = document.querySelector('.link > a'); 

$toggle.addEventListener('click', function() { 
    var isOpen = $slider.classList.contains('slide-in'); 

    $slider.setAttribute('class', isOpen ? 'slide-out' : 'slide-in'); 
    $('#slider').animate({'right': '100%'}, 400); 
}); 

$toggle2.addEventListener('click', function() { 
    var isOpen = $slider.classList.contains('slide-in'); 

    $slider.setAttribute('class', isOpen ? 'slide-out' : 'slide-in'); 
    $('#slider').animate({'right': '0'}, 300); 
}); 

var toggleDataAttr = function(parentElem, toggleElem, opt1, opt2, dataAttr) { 
    var toggleElem = parentElem.querySelector(toggleElem); 
    toggleElem.setAttribute(dataAttr, toggleElem.getAttribute(dataAttr) === opt1 ? opt2 : opt1); 
}; 

var toggle_li = document.querySelectorAll('li'); 

for (var i = 0; i < toggle_li.length; i++) { 
    toggle_li[i].onclick = function() { 
     toggleDataAttr(this, '.toggleContent', 'closed', 'open', 'data-state'); 
     toggleDataAttr(this, '.toggleIcon', 'down', 'up', 'data-icon'); 
    }; 
} 

});

+0

http://stackoverflow.com/questions/9769868/addeventlistener-not-working-in-ie8 –

ответ

0

addEventListener() не поддерживается в IE8 и ниже (подробнее здесь: http://www.w3schools.com/jsref/met_document_addeventlistener.asp), вместо этого вам необходимо использовать attachEvent() в этих браузерах.

Вы можете использовать его как это:

if(element.addEventListener()) { 
    element.addEventListener('click', myFunction(), true); 
} else if(element.attachEvent()) { 
    element.attachEvent('click', myFunction()); 
} 

Это способ сделать это делает его мульти-совместимый браузер.

+0

Спасибо, я пробовал это несколькими способами в своем собственном коде и должен помещать его во все неправильные места. Все еще изо всех сил пытаюсь заставить это работать! – lettucebe

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