私は別の要素をクリックして表示される(トグル)divを作成しています。JQuery Toggleは最初のクリックで動作しますが、(期待どおり)
アンカー(#toggle-contents
)をクリックすると表示され、同じアンカーをクリックした場合やドキュメント内の他の場所をクリックすると非表示になります。
私はこのハウツーのコードに従っています:Creative overlay/popup with 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');
私はここで他のトグルの質問に比較するエラーを見つけることを試みたが、いずれかのヒントを見つけることができませんでした。
ありがとうございました!
あなたのhtmlコードを投稿することができますか? – Unknown
あなたは何をしようとしているのですか?$( '#' + toggle).toggle();この行$( '#' + toggle).hide(500);それを隠している可能性があります。 – Daniel
どのように/初期の 'トグル'変数? – Omid