jQuery pulsate div

时间:2012-11-10 00:40:50

标签: jquery html css

有谁知道我做错了什么?

我试图拥有" minus.png"单击时,它将删除DIV,但是如果单击div文本,它将删除div。

我不想点击div并在pulsate上删除它,我希望能够点击减去png图像,然后删除它,你会不会知道它是什么我和#39;我做错了吗?

我确定这只是一个简单的解决办法,但它让我很烦恼哈哈!

谢谢!

<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/

5 个答案:

答案 0 :(得分:4)

<强> Code Example

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

您还应该提供a代码href值。保持空置是违反标准的。您可以使用href="#"

答案 1 :(得分:3)

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

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

见工作demo

答案 2 :(得分: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")做什么。这是在命令的最后,并没有任何影响。你可以把它留下来。

答案 3 :(得分:2)

也许$(".pane") - &gt; $(".pane > a")

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

您对整个div进行了绑定点击,而是将其绑定在 a 元素上,就像您说的那样

$(".pane > a").click(function (event) {
    event.preventDefault();
    $(this).parent().effect("pulsate", { times:2 }).fadeOut('slow');
});

答案 4 :(得分:1)

DEMO - 一个整洁的小slideUp()动画如何与风格保持一致?