Сделать проверки в JS
Вложений: 1
Доброго времени суток!
Недавно нашел данный скрипт и начал его использовать для создания простого сайта. Но в процессе мне потребовалось изменить данный скрипт для удобства работы, но я JS не знаю толком, точнее вообще не знаю. Можете тут вставить проверку, что бы при ссылке такого типа site.ru/index.php#id не происходило действий, если ссылка неизменна, если основная ссылка изменилась, то что бы перекинуло на новую страницу site.ru/photos.php#id При переходе на новую страницу что бы плавно поднимало вверх ($('html, body').animate({scrollTop:0});}); - данный код вставлял, но порой скрипт зацикливался и постоянно держало страницу вверху) Проверку на то, что ссылка ведет на картинку, если на картинку, то что бы по ajax не грузило И еще, если возможно, переход на страницу ошибки 404 <script> $(document).ready(function() { $('a').click(function() { var url = $(this).attr('href'); $.ajax({ url: url + '?ajax=1', success: function(data){ $('#content').html(data); } }); if(url != window.location){ window.history.pushState(null, null, url); } return false; }); $(window).bind('popstate', function() { $.ajax({ url: location.pathname + '?ajax=1', success: function(data) { $('#content').html(data); } }); }); }); </script> P.S. Исходник общий я прикрепил |
Хотя лучше даже так...
Как сделать проверку тут еще на существование элемента? id? Просто появилась такая мысль... Например вот ссылка идет с использованием AJAX: <a href="/">Main AJAX</a> А вот такая без AJAX: <a href="/" id="noajax">Main NOAJAX</a> |
$(function() { var content = $('#content'); content.on('click', 'a[href][id!="noajax"]', function() { var url = this.href + (this.search.length > 1 ? '&' : '?') + 'ajax=1'; content.load(this.href + ' #content'); window.history.pushState(null, null, url); return false; }); window.addEventListener('popstate', function() { content.load(this.location.href + ' #content'); }); }); |
Ruslan_xDD, Благодарю!
|
Цитата:
|
Цитата:
А как тогда поступить? |
SkyLaGer, используй rel="noajax".
|
Часовой пояс GMT +3, время: 16:19. |