2013-02-28 2 views
0

Цель: у меня есть некоторый существующий контент (много текста и нескольких страниц), который я обновляю, чтобы скрыть/сегментировать динамический слайдер jQuery (creator's demo page & code here). Тем не менее, контент полон внутренних ссылок в разных местах, которые я не хочу обновлять по отдельности.jQuery открыть все элементы слайдера, затем перейти к привязке link

Возможности решения Я придумал: (a) создать jQuery, чтобы автоматически определять, какой ползунок div находится внутри, и автоматически открывать его, или (b), если URL-адрес содержит хэш-тег, запускает функцию openAll для откройте все слайдеры, а затем после этого перейдите к месту привязки.

Вопросы: Я новичок в этом. Я пошел с вариантом B и думаю, что мой код имеет правильную идею, но он разбивает страницу. Идеи?

var hash = location.hash.replace('#', ''); 
$('body').find('ul'+hash+':first'); 
function hashload { 
if(window.location.hash) { 
    $('.collapsible').openAll(); 
    $('html, body').animate({ 
    scrollTop: $('#'+hash).offset().top}, 'fast');}} 

Соответствующие ресурсы, которые могли бы иметь ключ ко всему этому (иначе, что я основывая это на ...): Link to an anchor within JQuery tabbed content (и сопутствующее решение здесь: http://jsfiddle.net/TGMDd/65/)

don't execute script if url contains # ... и : Getting URL hash location, and using it in jQuery

JQuery scroll to anchor on click?

Большое спасибо за ваше время!

ответ

0

Предполагая, что $('.collapsible').openAll(); работает, попробуйте удалить эту строку:

$('body').find('ul'+hash+':first'); 
  1. Это не кажется, делать что-либо действительное.
  2. Селекторы неправильные.

это должно выглядеть примерно так:

$(document.body).find('ul.'+hash+':first');