1

有谁知道我做错了什么?

我试图点击“minus.png”,它会删除 DIV,但是如果你点击 div 文本,它会删除 div。

我不希望能够单击 div 并在脉动上将其删除,我希望能够单击减号 png 图像并将其删除,您会碰巧知道我做错了什么吗?

我敢肯定这是一个简单的修复,但它让我很烦恼哈哈!

谢谢!

<script>
  $(document).ready(function() {

      $(".pane").click(function () {
      $(this).effect("pulsate", { times:2 }, 0000).fadeOut('slow').parents(".pane");
});

  });
  </script>

  <div class="pane">
 <a href=""><img align="right" src="http://uploadir.com/u/6hmr4fr1" alt="delete" class="delete" /></a>  
  Simple jQuery script I'm learning to work with, you mad bro?
  </div>

  <div class="pane">
  <a href=""><img align="right" src="http://uploadir.com/u/6hmr4fr1" alt="delete" class="delete" /></a>  
  Simple jQuery script I'm learning to work with, you mad bro?
  </div>

  <div class="pane">
  <a href=""><img align="right" src="http://uploadir.com/u/6hmr4fr1" alt="delete" class="delete" /></a>  
 Simple jQuery script I'm learning to work with, you mad bro?
  </div>

  <div class="pane">
  <a href=""><img align="right" src="http://uploadir.com/u/6hmr4fr1" alt="delete" class="delete" /></a>  
  Simple jQuery script I'm learning to work with, you mad bro?
  </div>

完整代码在这里:

http://jsfiddle.net/CgPJv/

4

5 回答 5

4

代码示例

$('.pane a').click(function () {
    $(this).closest('.pane').effect('pulsate', { times:2 }, 0000).fadeOut('slow');
    return false;
});

您还应该给出a标签href值。保持空白是违反标准的。您可以使用href="#".

于 2012-11-10T00:48:07.237 回答
3

您需要将点击事件附加到img元素,然后使用closest()冒泡找到它.pane并将其淡出,如下所示:

$(document).ready(function() {
      $(".pane img").click(function (e) {
         e.preventDefault();
         $(this).closest('.pane').effect("pulsate", { times:2 }, 0000).fadeOut('slow');
      });
});

查看工作演示

于 2012-11-10T00:47:02.833 回答
3

您可以将点击事件附加到实际图像,

$(".pane > a > img").on('click... 

或者您可以直接获取alt图像元素的属性 -

$(".pane img[alt='delete']").on('click...

我总是喜欢尽可能详细地使用我的选择器,因为我发现它提高了可读性并使调试更快。

在这两种情况下,要获得您想要实际淡出的元素,您将使用该closest()函数。

$(".pane img[alt='delete']").on('click',function () {
  var paneElement = $(this).closest('.pane');
  paneElement.effect("pulsate", { times:2 }, 0000).fadeOut('slow');
  return false;
});

最后,我不太确定你想用.parents(".pane"). 它在命令的末尾,根本没有任何效果。你可以把它排除在外。

于 2012-11-10T00:47:54.590 回答
2

也许$(".pane")->$(".pane > a")

http://jsfiddle.net/CgPJv/6/

您正在绑定整个 div 上的点击,而不是像您说的那样将它们绑定在a元素上

$(".pane > a").click(function (event) {
    event.preventDefault();
    $(this).parent().effect("pulsate", { times:2 }).fadeOut('slow');
});
于 2012-11-10T00:47:20.417 回答
1

演示——一个简洁的小slideUp()动画与风格保持一致如何?

于 2012-11-10T00:52:00.970 回答