2

我有一小块 jQuery,需要一些帮助。这是我所拥有的:

jQuery:

jQuery(".disableUser").click(function() {
    jQuery(".enableUser").show()
    jQuery(".disableUser").hide();
});

jQuery(".enableUser").click(function() {
    jQuery(".disableUser").show()
    jQuery(".enableUser").hide();
});

HTML:

<tr>
    <td></td>
    <td></td>
    <td></td>
    <td><span class="disableUser">Disable this user</span><span class="enableUser">Enable this user</span></td>
</tr>

.enableUser设置display:none为默认值。

如您所见,它只是隐藏或显示一个元素。我的问题是表中有行,每行具有相同的两个元素。当我单击一行的元素时,它会隐藏或显示所有行的元素。我只希望它影响我单击的特定元素,而不是所有具有相同类的元素。我已经尝试过在这里找到的信息:http: //css-tricks.com/snippets/jquery/click-once-and-unbind/,但我不确定我是否理解它或正确使用它。

4

2 回答 2

4

您可能想要找到当前行的.enableUserand .disableUserthis将引用单击的元素,然后您可以从那里遍历 DOM 并找到正确的元素:

jQuery(".disableUser").click(function() {
    jQuery(this).hide().closest("tr").find(".enableUser").show();
});

查看文档以.closest获取.find更多信息。您可能还想阅读有关事件处理的更多信息。

于 2013-08-02T22:08:36.953 回答
1
jQuery(".disableUser").click(function() {
    jQuery(this).hide().siblings('.enableUser').show();
});

jQuery(".enableUser").click(function() {
    jQuery(this).hide().siblings('.disableUser').show();
});
于 2013-08-02T22:25:08.723 回答