2016-06-25 6 views
1

Мои нижние коды работают отлично в Chrome, но в Safari появляется следующая ошибка. Есть ли какое-либо решение для его устранения.ТипError: undefined - это не объект только в Safari и iOS

jQuery('.mk-responsive-nav > li > a').click(function() { 
    var href = jQuery(this).attr('href').replace('#', ''); 
    jQuery(window).scrollTop(jQuery("section[data-anchor='" + href + "']").offset().top); 
    console.log(jQuery("section[data-anchor='" + href + "']").offset().top ); 
}); 

Сафари ошибка:

TypeError: не определено не является объектом (оценка 'JQuery ("раздел [данные якорь ='" + HREF + "]"..) Смещение() сверху ')

ответ

0

Трудно сказать, потому что я не вижу контекст html. Я бы порекомендовал попробовать захватить переменную href и убедиться, что это фактически jQuery Object перед прокруткой window. Мне удалось получить ту же самую ошибку.

$(function() { 
 
    jQuery('.mk-responsive-nav > li > a').click(function() { 
 

 

 
    var href = jQuery(this).attr('href').replace('#', ''); 
 
    var target = jQuery("section[data-anchor='" + href + "']"); 
 

 
    console.log(target.offset().top, 'YOUR EXACT ERROR IN SAFARI WHEN CLICKING FAIL LINK: ', jQuery("section[data-anchor='" + href + "']")); 
 

 
    if (target.length) { 
 
     console.log('scrolling to: ', target.offset().top); 
 
     jQuery(window).scrollTop(target.offset().top); 
 
    } 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<ul class="mk-responsive-nav"> 
 
    <li><a href="#section-1">This will work</a> 
 
    </li> 
 
    <li><a href="#section-fail">This will fail</a> 
 
    </li> 
 
</ul> 
 

 
<section data-anchor="section-1">Section 1.</section> 
 
<section data-anchor="section-2">Section 2.</section>

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