1

编辑:有几个人很快回答了我的问题。这是我犯的一个痛苦的明显错误,只需将#buttonclose 更改为.buttonclose 即可解决。感谢大家的及时回复!

我有三个 div(#window1、#window2 和 #window3),每个都有一个按钮(#buttonclose)。我试图弄清楚当您单击其各自的按钮时如何淡出每个 div。

到目前为止,这就是我所拥有的功能:

$('#buttonclose').click(function(){
$('#window1').fadeOut(300);
});

这非常适用于#window 1,但我不知道如何让它适用于#window2 和#window3。

希望你能帮助我。我真的很感激!谢谢!

4

2 回答 2

1

首先,一个 ID 应该是一个元素的唯一标识符,因此不允许有多个具有 id 的元素buttonclose。在你的情况下,你也许可以把它变成一个类。

然后,在某种程度上取决于 DOM 结构,您可以执行以下操作:

$(".buttonclose").on("click", function () {
   $(this).parent().fadeOut(300);
});

演示

这要求要隐藏的元素是按钮的直接父元素,因此您可能需要对其进行一些修改以更好地满足您的需求。

如果元素嵌套更深,类似的方法.closest()可能对您有所帮助,以找到要隐藏的正确祖先。

如果元素不是按钮的祖先,那么您需要一些其他方式将按钮与要隐藏的元素相关联,例如data-*在按钮元素上使用属性,并在其中存储值,例如元素的 ID关闭。然后在单击按钮时读取该值,并以这种方式选择正确的元素。

于 2013-01-14T21:54:41.533 回答
0

假设 HTML 是这样的:

<div id="window1">This is window 1 <span class="closeButton">Close</span> 
</div>
<div id="window1">This is window 2 <span class="closeButton">Close</span>
</div>
<div id="window1">This is window 3<span class="closeButton">Close</span>
</div>

您可以访问按钮的父级并淡化它:

$(".closeButton").button().click(function () {
  $(this).parent().fadeOut(300);
});

看到这个小提琴:http: //jsfiddle.net/q6sQX/2/

于 2013-01-14T21:56:37.530 回答