4

我在 A 层内有 A 层和 B 层

在此处输入图像描述

http://jsfiddle.net/PhZhY/

remove()是否可以通过仅单击 A 层而不是 B 层的 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/

如果你想删除.a1div 如果它没有被点击,.b2这就是你需要的:

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

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

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

根据@Rick Calder 的评论:如果您愿意,可以使用.addClass()更改类或.removeClass()删除类。

于 2012-11-20T13:15:23.617 回答
0

这是我阅读问题的方式:

如果单击.b1,则不会发生任何事情。如果你点击.a1它应该被删除。

如果这是意图,这里是 jQuery:

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

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

这是一个jsbin。注意:从@Vision 的 jsFiddle 无耻地窃取 css、html

于 2012-11-20T13:19:49.887 回答