ここで解決策を見つけました。stackoverflowで、スクリプトは次のとおりです。
jQuery(document).mouseup(function (e){
var container = jQuery(".quick-info");
if (container.has(e.target).length === 0) {
container.hide();
}
});
私の試みは:
jQuery('body:has(.quick-info:visible):not(.quick-info)').click(function (e) {
jQuery(".quick-info").hide();
});
したがって、私のスクリプトは次のことを意味します: .quick-info ではなく body で行われたクリックをキャッチし、body には .quick-info が表示されます。何が問題なのですか?間違ったセレクターかもしれませんか?
更新 1
ラミンソンの回答に基づいています。
jQuery('body > *:not(.quick-info)').click(function (e) { var コンテナー = jQuery(".quick-info"); if (container.has(e.target).length === 0 && e.target.nodeName != 'A'){ jQuery(".quick-info").hide(); } });
したがって、 > 単一のセレクターのみが選択されています。
e.target.nodeName != 'A' は link で、このウィンドウが開きます。私はクラスか何かをそこに置くことができることを知っています。