私は、クリックイベントで要素を要素に追加する関数を持っています。次に、以前に追加された要素の1つがクリックされたときにそれらの要素を削除する必要がある別の要素があります。jQuery、削除は子要素を削除しない - 親だけ
.closeBigPicをクリックすると、その要素が期待通りに削除されますが、.bigPicWrapper divが削除され、.bigPic要素が残っています。
$(document).on('click', '.user-profile .avatar_section', function() {
var thumbUrl = $(this).find('.avatar_profile').attr('src');
var origUrl = thumbUrl.replace('thumb', 'medium');
console.log(origUrl);
$('body').append('<div class="closeBigPic"></div><div class="bigPicWrapper"><img class="bigPic" src="' + origUrl + '" /></div>')
});
$(document).on('click', '.closeBigPic', function() {
$(this, '.bigPicWrapper').remove();
});
ないことが必要であろう理由を確認してくださいが、ここでSCSSは、念のためです:
.user-profile {
.avatar_section {
cursor: pointer;
}
}
.bigPicWrapper {
position: absolute;
z-index: 9010;
top: 50%;
left: 50%;
-webkit-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
img {
max-width: 100%;
border-radius: 100%;
border: solid 5px #fff;
}
}
は.remove()
は、同様に子要素を削除しないでください。
UPDATE:私は第2のクリックイベントを変更すると
:
$(document).on('click', '.closeBigPic', function() {
$(this).remove();
$('.bigPicWrapper').remove();
});
それが期待どおりに動作します。そこには何が起こっているのですか?私はそれはこれがあなたのコンテキストとして.bigPicWrapper
を使用するように言っているthis
はい、あなたは絶対に正しいです!私は自分がしていたことに気付かなかった。これは非常に面白いです。ありがとう! – user3006927