Удалить пользовательский выпадающий список в случае нажатия снаружи - PullRequest
0 голосов
/ 07 января 2011

Я сделал собственный выпадающий список.И я хочу, чтобы он работал как тег выбора в HTML.Когда я нажимаю вне выпадающего списка, я хочу, чтобы он был удален.Но у меня проблема с этим.Код ниже работает, и он компилируется всякий раз, когда я нажимаю на кнопку, которая выдвигает выпадающий список (optionContainer).

var optionContainer = document.createElement('div');
optionContainer.className = 'optionContainer';
button.appendChild(optionContainer);

var clickOutsideEvent = function(){
     $(optionContainer).remove();
};

$(optionContainer).mouseout(function(){
    $(document).delegate('body','click', clickOutsideEvent);
});

$(optionContainer).mouseover(function(){
    $(document).undelegate('body', 'click', clickOutsideEvent);         
});

Но мне нужно добавить еще одну строку кода, чтобы сделать этополный.Строка кода ниже добавляется после последней неидентифицированной строки.

$(document).delegate('body','click', clickOutsideEvent);

Странно то, что эта строка кода точно такая же, что и в событии mouseout.Но эта строка не работает.

1 Ответ

0 голосов
/ 07 января 2011

Вы завершили последнюю строку в вызове $ (document) .ready, чтобы он выполнялся при загрузке jQuery?

$(document).ready(function() {
   $(document).delegate('body','click', clickOutsideEvent);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...