ここにコードがあります。なぜそれがうまく機能するのかさえわかりません.7行目は有効ではないと思います.ライトボックスを削除し、loginDropDown 要素を削除します)? 私を本当に混乱させているのは、7行目を削除しても同じように機能しないのはなぜですか.7行目が有効なJQueryでさえないのに、偶然に入力したのですが、これはバグですか?有効なコードと同じように機能しますか?
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();
正常に動作します...なぜですか?これは有効なコードですか?有効であることを示すものは見つかりません。