在我之前的问题中,我询问了如何用段落切换文本区域。我得到了答案。现在我想做相反的事情。首先,我通过单击超链接来显示已经隐藏的 textarea + 2 按钮。现在单击其中一个按钮,我想隐藏文本 + 2 按钮并显示第一次显示的段落。
到目前为止,我已经尝试过这个 JS,但它不起作用:
$(document).ready(function () {
$(".no_link").click(function (e) {
e.preventDefault();
});
$(".edit_offer").on('click', function () {
toggleEditPanel($(this));
});
$("#cancel_edits").on('click', function () {
$(this).closest("button").hide();
$(this).closest("textarea").hide();
$(this).closest("p.content").show();
});
});
function toggleEditPanel(link) {
link.parent().parent().parent().find("textarea").toggle();
link.parent().parent().parent().find("button").toggle();
link.parent().parent().parent().find("p.content").toggle();
}
但它不起作用。我该如何解决这个错误?
如果我试图toggleEditPanel()
再次调用该函数。它也不起作用。
您可以在小提琴中找到标记。这是小提琴。
更新 1:
刚刚想出了一个解决方案。我可以使用该$.siblings()
功能来切换按钮旁边的元素。不过,有没有更好的解决方案?
这是我想出的代码:
$("#cancel_edits").on('click', function () {
$(this).hide();
$(this).siblings("button").hide();
$(this).siblings("textarea").hide();
$(this).siblings("p.content").show();
});
更新 2:
上面代码中的问题是,如果有多个这样的面板,则代码不起作用。我该如何解决这个问题?