2016-01-13 7 views
0

Я новичок в javascript и использую jQuery для переключения на кнопку, чтобы открыть и закрыть следующий div. Вот мой HTML:Переключатель на странице загрузки с хеш-ссылкой не работает

<article id="book-section"> 
<h3>The new collection</h3> 
<a class="btn" href="#book-list-one">Book list</a> 
<div> 
<ul> 
    <li>Book one</li> 
    <li>Book two</li> 
    <li>Book three</li> 
    <li>Book four</li> 
</ul> 
</div> 
</article> 

Вот мой Javascript

$(document).ready(function() { 
$(".btn").click(toggle); 
function toggle() { 
    { 
     $(this).toggleClass("open").next().slideToggle(); 
     return false; 
    }; 

    $("a[href='" + window.location.hash + "']").parent(".btn").click(); 
} 
}); 

Это должно быть открытие DIV, содержащий список книг, когда пользователь вводит в index.html # книжным список-один, но его не делает. Эффект переключения очень просто. Я не могу понять, в чем проблема. Любая помощь будет оценена! Спасибо заранее!

Update: Вот JSfiddle

+0

Просто добавил JSfiddle. Надеюсь, это поможет. – Maya

ответ

0

Вы закрывающая скобка неправильно установка на функции:

$(document).ready(function() { 

    $(".btn").click(toggle); 

    function toggle() { 
    $(this).toggleClass("open").next().slideToggle(); 
    return false; 
    } 

    // and seems like the a tag in html snippet posted 
    // doesn't have parent with the class name `.btn`, 
    // $("a[href='" + window.location.hash + "']").parent(".btn").click(); 
    // instead try access it directly 
    $("a[href='" + window.location.hash + "']").click(); 

}); 
+0

Это не сработало для меня, к сожалению. – Maya

+0

Вы уверены, что 'window.location.hash' в вашем коде вернет правильный хэш из url? Причина, когда я привязал хешированный URL прямо к тегу, работает правильно. См. Обновленную скрипту здесь. Https://jsfiddle.net/norlihazmeyGhazali/pdz92ms7/ –