這裏是代碼,我甚至不知道爲什麼它的效果和它的效果一樣,第7行甚至沒有效想想,爲什麼它做我想做的事情(它將不透明度降低到燈箱的0並刪除loginDropDown元素)?這讓我很困惑的是,爲什麼當我刪除第7行,第7行甚至不是有效時,它的功能不一樣?JQuery我只是偶然地鍵入了它,這是一個錯誤,如果是的話,我該如何得到它功能與有效的代碼一樣嗎?如何在將DOM元素附加到同一個函數中的元素後將其銷燬
function lightBox($this) {
if (!$('#lightBox').length > 0) {
$('<div id="lightBox"></div>').prependTo($this);
$("#lightBox").animate({opacity: '.4'}, 500);
} else {
$("#lightBox").animate({opacity: '0'}, 500);
$('<div id="lightBox"></div>').delete();
}
}
/** login dropdown **/
$('a#loginDropdownBtn').click(function() {
$this = $(this);
if ($(this).hasClass('loginActive')) {
$('div#loginDropdown').removeClass('loginActive');
} else {
$('div#loginDropdown').addClass('loginActive');
lightBox($this);
}
return false;
});
/** login removal **/
$(document).click(function (event) {
if ($(event.target).parents().index($('#loginDropdown')) == -1) {
if ($('#loginDropdown').is(":visible")) {
$('div#loginDropdown').removeClass('loginActive');
}
}
})
編輯: 如果我使用 -
$('div#loginDropdown').removeClass('loginActive');
$("#lightBox").animate({opacity: '0'}, 500, function() {
$(this).remove();
});
作品!然而 -
$("#lightBox").animate({opacity: '0'}, 500, function() {
$(this).remove();
});
$('<div id="lightBox"></div>').delete();
工作正常......爲什麼?這是有效的代碼,我找不到任何指示它的東西。
謝謝,我想到了這一點,並即將編輯我的文章,但它仍然不會刪除登錄元素只是lightBox元素(但它現在很好地動畫)。 – Ian
@Ian編輯我的答案。那是你需要的嗎?如果沒有,你能否在問題中增加更多細節? – htxryan
這絕對有效,但我仍然很想知道爲什麼我的新代碼也可以工作。順便說一句,謝謝,我完全有這個臉掌時刻。 – Ian