Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   перемещение к якорю (https://javascript.ru/forum/misc/60864-peremeshhenie-k-yakoryu.html)

drcrash 24.01.2016 17:52

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

<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 и естественно не срабатывает(
и как сделать перемещение плавным?

рони 24.01.2016 18:01

drcrash,
а проверить перед тем как window.location.hash?

drcrash 24.01.2016 18:17

то есть создать условие?
if ( window.location.hash = "#tab3") { 
		$('.#tab3').remove('#tab3');
	}

newuserjs2016 24.01.2016 18:24

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

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

А во вторых, не слишком ли накладно перезагружать страницу при каждом переходе? Вы же и сервак дергаете.

drcrash 24.01.2016 18:36

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

<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>

newuserjs2016 24.01.2016 18:41

drcrash,
Я же образно выразился, зачем копипастить то было?:) я всего лишь принцип обозначил.

рони 24.01.2016 18:43

drcrash,
:-?

$(function (){
  $('.tabsfree a').on('click',function(event){
    event.preventDefault();
    var hash = '#tab3';
    location.hash != hash && (location += hash);
    $('.block iframe')[0].src = this.href;
  });
})

drcrash 24.01.2016 18:57

рони,
Да, сейчас с ссылкой при кликах все ок, не плодится в конце урла #tab3#tab3#tab3
но....
и срабатывает так же, как если бы плодилось - только при первом клике(

рони 24.01.2016 19:03

Цитата:

Сообщение от drcrash
и срабатывает так же, как если бы плодилось - только при первом клике(

не осилил, но попробуйте
location.hash != hash && (location.hash = hash)

drcrash 24.01.2016 19:08

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

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

рони 24.01.2016 19:26

drcrash,
я пас ... не понимаю ваших речей

drcrash 26.01.2016 12:00

http://www.embed-videos.com/embed-vi...des-vimeo.html

вот как в ссылке - при клике на картинку видео идет перемещение и воспроизведение

рони 26.01.2016 12:32

drcrash,
там нет нет никакой смены hash и пожалуй это для раздела работа.


Часовой пояс GMT +3, время: 20:43.