Я создаю div, который отображается (переключается) при нажатии на другой элемент.
Он должен отображаться при щелчке на якоре (#toggle-contents
) и скрываться, если я нажимаю на тот же якорьили где-то еще в документе.
Я следую коду в этом практическом руководстве: Творческое наложение / всплывающее окно с jQuery .
В настоящее время оно работаетв первый раз, когда по нему щелкают, но вскоре после этого он отображается и скрывается.
Разметка:
<div id="block-header">
<a id="trigger-contents">Toggle</a>
</div>
<div id="block-contents">
</div>
JavaScript:
function registerToggleDiv( trigger, toggle )
{
$( '#' + trigger ).click(function()
{
$( '#' + toggle ).toggle(function()
{
console.log('toggle');
$(document).click(function(event)
{
if ( !($(event.target).is('#' + toggle ) ||
$(event.target).parents('#' + toggle ).length ||
$(event.target).is( '#' + trigger )))
{
console.log('toggle hide');
$('#' + toggle ).hide(500);
}
});
});
});
}
registerToggleDiv( 'trigger-contents', 'block-contents' );
Я попытался найти ошибку по сравнению с другими вопросами-переключателями здесь, но не нашел подсказки.
Спасибо за любые подсказки!