2017-01-11 23 views
0

я только изменил мою версию Jquery 3.1.1 и все внезапно некоторые из моих скриптов перестал работать.JQuery/JS/HTML - Выделите Div не работает на JQuery 3.1.1

Я уже разработал большинство из них, но до сих пор не может решить проблему с свитка, чтобы закрепить сценарий ...

Здесь:

$(document).on('click', 'a', function(event){ 
    event.preventDefault(); 

    $('html, body').animate({ 
     scrollTop: $($.attr(this, 'href')).offset().top 
    }, 500); 
}); 

Он только что выиграл Не работайте сейчас, какая-нибудь идея, как это сделать?

Вот HTML скрипт часть тоже:

<a class="scrolltomain" href="#content-wrapper"> 
<span> 
<img id="scroller" src="img/scrolldown-1.gif"></img> 
<center>Kliknij<br>lub<br>przewiń</center> 
</span> 
</a> 

Был бы очень признателен, если кто-то может мне помочь.

BTW, хром-консоль не будет показывать никаких ошибок.

ответ

2
  • Нет такой метки как </img>. Теги изображений Самозакрывающиеся, а-ля: <img src=" " />

И вам нужно определить расположение перед тем анимации. Просто определите переменную перед функцией animate(), а затем вызовите переменную внутри функции.

$(document).on('click', 'a', function(e) { 
 
    e.preventDefault(); 
 
    var thisRef = $(this).attr('href'); 
 
    $('html, body').animate({ 
 
     scrollTop: $(thisRef).offset().top 
 
    }, 500); 
 
});
a { display: block; text-align: center; height: 400px; } 
 
#content-wrapper { background: red; height: 300px; margin-top: 500px; color: #fff; font-size: 2em; line-height: 1.6; text-align:center; padding: 20px;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<a class="scrolltomain" href="#content-wrapper"><img id="scroller" src="http://placekitten.com/25/25" /><br />Kliknij<br />lub<br />przewiń</a> 
 
<div id="content-wrapper"> Content </div>

+0

На самом деле мой сценарий начал работать после того, как ваши советы, но я до сих пор не полностью доволен тем, как он работает: P Вместо оживляющей свиток это просто «перескакивает» на DIV, старались работать его но еще не знаю, что еще я делаю неправильно –

+0

Кроме того, как ни странно, я просто заметил, что он отлично работает на IE, не будет работать на Chrome ... –

+0

Ответ Скотта был очень полезен, на самом деле он работает безупречно. Проблема, с которой я столкнулся с самой анимацией, - стиль «overflow-x: hidden;», привязанный к «телу». Теперь он отлично работает, спасибо! –

1

попытка .delegate() вместо .on() .... .он() является новым для Jquery 1.7, так что если вы пошли в обратном направлении, то вы должны будете использовать делегат или жить.

.delegate() vs .on()

+0

Скотт прав про тег IMG тоже. – garek007

+0

Также был полезен, спасибо @ garek007! –