0
我做了一個自定義的下拉列表。我希望它能像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事件中使用的行完全相同。但是這條線不起作用。
當你說「不行」 - 你是什麼意思?它不添加事件處理程序? – Guss 2011-01-06 21:22:24
是否包裝了$(document).ready調用中的最後一行,所以它在jQuery加載時執行? – 2011-01-06 21:24:01