Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 24.01.2016, 17:52
Интересующийся
Отправить личное сообщение для drcrash Посмотреть профиль Найти все сообщения от drcrash
 
Регистрация: 21.12.2015
Сообщений: 13

перемещение к якорю
Здравствуйте!
Помогите плз со следующей проблемой, есть код:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script type="text/javascript">
$(function (){
  $('.tabsfree a').on('click',function(event){location += '#tab3';
    event.preventDefault();
    $('.block iframe')[0].src = this.href;
  });
})
</script>


проблема в следующем - при клике по ссылке идет перемещение к якорю tab3, все вроде бы хорошо, но есть еще ссылки, которые ведут к этому же якорю и в общем при повторном клике к урлу добавляется второй якорь и выглядит уже так - #tab3#tab3 и естественно не срабатывает(
и как сделать перемещение плавным?
Ответить с цитированием
  #2 (permalink)  
Старый 24.01.2016, 18:01
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,121

drcrash,
а проверить перед тем как window.location.hash?
Ответить с цитированием
  #3 (permalink)  
Старый 24.01.2016, 18:17
Интересующийся
Отправить личное сообщение для drcrash Посмотреть профиль Найти все сообщения от drcrash
 
Регистрация: 21.12.2015
Сообщений: 13

то есть создать условие?
if ( window.location.hash = "#tab3") { 
		$('.#tab3').remove('#tab3');
	}
Ответить с цитированием
  #4 (permalink)  
Старый 24.01.2016, 18:24
Интересующийся
Посмотреть профиль Найти все сообщения от newuserjs2016
 
Регистрация: 22.01.2016
Сообщений: 18

Во первых, надо делать не
location += '#tab3'

а что-то типа
location = location.replace(/#tab\d$/, "#tab" + theValue)

А во вторых, не слишком ли накладно перезагружать страницу при каждом переходе? Вы же и сервак дергаете.
Ответить с цитированием
  #5 (permalink)  
Старый 24.01.2016, 18:36
Интересующийся
Отправить личное сообщение для drcrash Посмотреть профиль Найти все сообщения от drcrash
 
Регистрация: 21.12.2015
Сообщений: 13

дергается внешний урл и вставляется в код страницы.
проверил, не работает(

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script type="text/javascript">
$(function (){
  $('.tabsfree a').on('click',function(event){location = location.replace(/#tab3\d$/, "#tab3" + theValue);
    event.preventDefault();
    $('.block iframe')[0].src = this.href;
  });
})
</script>
Ответить с цитированием
  #6 (permalink)  
Старый 24.01.2016, 18:41
Интересующийся
Посмотреть профиль Найти все сообщения от newuserjs2016
 
Регистрация: 22.01.2016
Сообщений: 18

drcrash,
Я же образно выразился, зачем копипастить то было? я всего лишь принцип обозначил.
Ответить с цитированием
  #7 (permalink)  
Старый 24.01.2016, 18:43
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,121

drcrash,


$(function (){
  $('.tabsfree a').on('click',function(event){
    event.preventDefault();
    var hash = '#tab3';
    location.hash != hash && (location += hash);
    $('.block iframe')[0].src = this.href;
  });
})
Ответить с цитированием
  #8 (permalink)  
Старый 24.01.2016, 18:57
Интересующийся
Отправить личное сообщение для drcrash Посмотреть профиль Найти все сообщения от drcrash
 
Регистрация: 21.12.2015
Сообщений: 13

рони,
Да, сейчас с ссылкой при кликах все ок, не плодится в конце урла #tab3#tab3#tab3
но....
и срабатывает так же, как если бы плодилось - только при первом клике(
Ответить с цитированием
  #9 (permalink)  
Старый 24.01.2016, 19:03
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,121

Сообщение от drcrash
и срабатывает так же, как если бы плодилось - только при первом клике(
не осилил, но попробуйте
location.hash != hash && (location.hash = hash)
Ответить с цитированием
  #10 (permalink)  
Старый 24.01.2016, 19:08
Интересующийся
Отправить личное сообщение для drcrash Посмотреть профиль Найти все сообщения от drcrash
 
Регистрация: 21.12.2015
Сообщений: 13

рони,
тоже самое(

А если в ссылке, на которую кликаю добавить в конце #tab3 ? как тогда должен выглядеть скрипт?
Тогда обработку клика можно будет включить - ведь перехода на другую страницу как такового не будет (что и не нужно) и передача в .block iframe сработает. или нет?

Последний раз редактировалось drcrash, 24.01.2016 в 19:15.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Плавная прокрутка к якорю krionic jQuery 2 14.02.2015 22:41
Перехват перехода по якорю InviS jQuery 25 11.07.2014 00:02
Перемещение объектов, последовательность событий prizrak39 Events/DOM/Window 3 19.11.2012 13:42
Перемещение, вращение, масштабирование div'a den_zm Dojo toolkit 1 13.10.2011 18:41
Перемещение окна приложения Don_001 Общие вопросы Javascript 2 07.07.2009 12:38