順序付けられていない()HTMLリストを使用していくつかのSelect要素をスタイリングしています。この関数は、ユーザーが要素の領域外をクリックするとそれらの要素を非表示にする必要がありますが、何らかの理由で、ユーザーがjQueryを使用する要素をクリックすると機能しません。 UIMultiSelectウィジェット。
更新-問題を示すためにjsfiddleを作成しましたhttp://jsfiddle.net/chayacooper/ezxSF/4/クリックして「ULElement」というラベルの付いたアイテムを開きます-「 ULElement 」のドロップダウンアイテムのいずれかにマウスオーバーした場合または、ドキュメントまたは他の要素をクリックすると、期待どおりに機能しますが、[ UL要素]項目にマウスを合わせずに[ MultiSelect要素]をクリックすると、開いたままになります。
$('html').click(function(e){
if(e.target.id == 'dropdown_box1') {
$("#select1").show();
} else {
$("#select1").hide();
}
});
また、ユーザーが複数選択要素をクリックした場合にその要素を閉じる別の関数を作成しようとしましたが、それも機能しませんでした。
$('.multiselect').click(function() {
$("#select1").hide();
});
HTML
<div id="dropdown_box1"><span>Select</span></div>
<div class="dropdown_container" id="dropdown_container1">
<ul id="select1">
<!-- Several List Item Elements -->
</ul>
</div>
別のmouseleave関数があり、ユーザーがリスト要素からマウスを離したときにリスト要素を非表示にしますが、ユーザーがクリックして開いたがリスト要素の上にマウスを置いても起動されません。
$(document).ready(function () {
$("#dropdown_box1").click(function () {
$("#select1").show();
});
var timeoutID;
$("#select1").mouseleave(function () {
timeoutID = setTimeout(function () {
$("#select1").hide();
}, 800);
});
$("#select1").mouseenter(function () {
clearTimeout(timeoutID);
});
});