4

レイヤーAの中にレイヤーAとレイヤーBがあります

ここに画像の説明を入力

http://jsfiddle.net/PhZhY/

remove()レイヤーBではなくレイヤーAだけをクリックするjQuery関数でレイヤーAを削除することは可能ですか?

4

3 に答える 3

3
$("body").on("click", ".a1", function(e) {
    if (this === e.target) $(this).remove();
});​

デモ: http://jsfiddle.net/PhZhY/1/

于 2012-11-20T13:11:05.067 に答える
2

.b1残してそのまま削除したい場合.a1

$('.a1').live('click',function() {
     $(".b1", this).unwrap();
});

http://jsfiddle.net/PhZhY/3/

子要素がわからない場合でも、その div を削除できます。

$('.a1').live('click',function() {
     $(".a1 :first-child").unwrap();
});

http://jsfiddle.net/PhZhY/5/

.a1これでクリックされていない場合にdivを削除する場合.b2は、次のものが必要です。

$('.a1').live('click',function() {
     $(".a1 :first-child").unwrap();
});

$('.b1').live('click',function() {
 throw "stop execution";
});​

http://jsfiddle.net/PhZhY/6/

.addClass()@Rick Calder のコメントによると、必要に応じてクラスを変更したり.removeClass()、クラスを削除したりできます。

于 2012-11-20T13:15:23.617 に答える
0

質問の読み方は次のとおりです。

をクリックして.b1も、何も起こらないはずです。クリックする.a1と削除されるはずです。

それが目的なら、jQuery は次のとおりです。

$('.b1').click( function(e){
  e.stopImmediatePropagation();
});

$('.a1').click( function(){
  $(this).remove();
});

ここにjsbinがあります。注: css、html は @Vision の jsFiddle から厚かましく盗みました

于 2012-11-20T13:19:49.887 に答える