2014-11-18 3 views
0

Я пытаюсь получить следующий код для работы в IE8:JQuery GetAttribute замена IE8

JQuery:

$(".scroll, .tobottom, .video-cta").on("click",function(e){ 
    e.preventDefault(); 
    var target = "#" + $(this).getAttribute("data-target") + " h1"; 
    $("html, body").animate({ 
     scrollTop: $(target).position().top 
    }, {duration: 2000, easing: "easeInOutQuint"}); 
}); 

В принципе, HTML, который будет ассоциироваться с чем-то, как это будет :

HTML:

<a class="scroll" href="#" data-target="videocontent">Some content</a> 

Поскольку IE8 не поддерживает getAttribute, я пытаюсь найти способ получить цель данных во всех браузерах. Любой совет?

+1

'$ (this) .attr (" data-target ");' – Hackerman

+1

Метод '' getAttribute' '(http://msdn.microsoft.com/en-us/library/ie/ms536429 (v = vs.85) .aspx) * * поддерживается в IE 8. Вы пытаетесь вызвать его из коллекции jQuery, где он не присутствует. – Sampson

ответ

2

getAttribute не метод JQuery - attr() является:

var target = "#" + $(this).attr("data-target") + " h1"; 

Это должно работать.

В качестве альтернативы, используйте .data() метод:

var target = "#" + $(this).data("target") + " h1"; 

Все методы JQuery предназначены для работы даже в старых IE, по крайней мере, в JQuery 1.x.

+0

Я пробовал оба метода, которые вы предлагали, и он не работает. Кажется, что независимо от того, какую кнопку прокрутки я нажимаю, он всегда переводит меня обратно в одно и то же место, хотя, с помощью целевого объекта данных, это должно привести меня к этой цели. Оба метода, о которых вы говорили, работают во всем, кроме IE8. – MikesBarto2002

+0

Возможно, у вас действительно проблемы с прокруткой. – Scimonster