指定の要素以外の場所をクリック(タップ)したら閉じるjQuery
とても参考になったのでメモ。
キモは $.contains( container, contained )
です。
$(document).click(function(event) { // (1)
if (!$.contains($("#popup")[0], event.target)) { // (2)
$("#popup").hide();
}
});
[参考] ポップアップの外側をクリックしたら閉じるためのjQuery Tips | milestoner
引用元サイトにとてもわかりやすい解説がついていますので、なぜそうなるの?という方はぜひ元サイトで確認を。
私はiPadにも対応させたかったので、
$(document).click(function(event) { // (1)
この部分を
$(document).on('click touchend', function(event) {
こうしてtouchendイベントにも使うようにしました。