私はjqueryが初めてで、クリックイベントから複数のdivを除外する方法があるかどうか知りたいです。まず、マウスがその外側をクリックしたときに、特定のdivを非表示にする方法を探していました。これは、何らかの結果をもたらした唯一のソリューションです (:not セレクターは機能しませんでした)。#cartbasket div も除外したいので、同じボタンで引き続き #cartbasketList ul を上下に切り替えることができます。いろいろ組み合わせてみましたが、うまくいきませんでした..
html:
<div id="cartinfos">
<div id="cartbasket"></div>
<ul id="cartbasketList">
<li><a href="#">somelink</a></li>
<li><a href="#">somelink</a></li>
<li><a href="#">somelink</a></li>
</ul>
</div>
CSS:
#cartinfos {
position: relative;
display: inline-block;
text-align: right;
width: 50%;
left: 10px;
padding: 15px 0px;
}
#cartbasket {
position: relative;
display: inline-block;
background: #ff0000;
width: 40px;
height: 40px;
}
#cartbasketList {
position: absolute;
display: none;
border-top: 5px solid #ff0000;
width: 250px;
height: 400px;
top: 60px;
right: 0px;
background:#fff;
z-index: 999999;
}
jquery:
$(function() {
$("#cartbasket").click(function() {
$("#cartbasketList").slideToggle("fast");
});
$("body").mouseup(function(event) {
if (event.target.id != 'cartbasketList') {
$("#cartbasketList").slideUp(100);
}
});
});