0

次の HTML コードがあります。

<a href="#language">English</a>
<div class="popup" id="language">
  Portuguese | English | French
</div>

リンクをクリックしたときにdivを開閉したい。

しかし、次の動作も必要です。

1 - リンクの外のどこかをクリックすると、ポップアップが非表示になります。

2 - ポップアップを開いたときに、現在開いているポップアップを閉じたい。

私は次のことを試しました:

$('a').click(function (event) {
  event.preventDefault();
  $($(this).attr('href')).toggle();
});
$("html").click(function (event) {
  $("div.popup").hide();
});

しかし、HTML 部分により、コードが機能しなくなります。

以下に例を示します: http://codepen.io/mdmoura/pen/sAeEJ

どうすれば解決できますか?

ありがとう、ミゲル

4

1 に答える 1

2

問題はイベントの伝播です

$('a').click(function (event) {
    $($(this).attr('href')).toggle();
    return false;
});
$("html").click(function (event) {
    $("div.popup").hide();
});

デモ:フィドル

于 2013-10-04T10:26:19.803 に答える