如何隐藏使用 jQuery 触发操作的父元素?

发布于 2024-09-18 18:08:44 字数 1227 浏览 2 评论 0原文

我在 html 中有这段代码(注意外部和内部元素中的数字 1 和 2):

<div class="list_item" id="item_1">
<div class="list_item_int">My first line</div>
<div class="eval_buttons">
    <div class="approve" id="1"></div>
    <div class="dismiss" id="1"></div>
</div>

<div class="list_item" id="item_2">
<div class="list_item_int">My second line</div>
<div class="eval_buttons">
    <div class="approve" id="2"></div>
    <div class="dismiss" id="2"></div>
</div>

然后我有这个脚本:

$().ready(function(){
    $(".approve").click(function(){
        $.post(
            "php/judge_work.php",
            {action : "1", work_info : this.id},
            function(data){
                $("#item_" + this.id).hide("slow");
            }
        );
    });
    $(".dismiss").click(function(){
        $.post(
            "php/judge_work.php",
            {action : "0", work_info : this.id},
            function(data){
                alert(data);
            }
        );
    });
});

有没有办法让 $("#item_" + this.id).hide("slow");工作?感谢您的友好回复。

I have this code in html (notice the numers 1 and 2in the outside and inside elements):

<div class="list_item" id="item_1">
<div class="list_item_int">My first line</div>
<div class="eval_buttons">
    <div class="approve" id="1"></div>
    <div class="dismiss" id="1"></div>
</div>

<div class="list_item" id="item_2">
<div class="list_item_int">My second line</div>
<div class="eval_buttons">
    <div class="approve" id="2"></div>
    <div class="dismiss" id="2"></div>
</div>

Then I have this script:

$().ready(function(){
    $(".approve").click(function(){
        $.post(
            "php/judge_work.php",
            {action : "1", work_info : this.id},
            function(data){
                $("#item_" + this.id).hide("slow");
            }
        );
    });
    $(".dismiss").click(function(){
        $.post(
            "php/judge_work.php",
            {action : "0", work_info : this.id},
            function(data){
                alert(data);
            }
        );
    });
});

Is there a way to make $("#item_" + this.id).hide("slow"); work? thanks on your kind response.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

我做我的改变 2024-09-25 18:08:44

您可以使用 .closest(),如下所示:

$(this).closest(".list_item") //gets the ancestor <div class="list_item">

在您的情况下由于 this 不会是 $.post() 回调中单击的元素,因此它看起来像这样:

$(".approve").click(function(){
   var li = $(this).closest(".list_item");
   $.post(
        "php/judge_work.php",
        {action : "1", work_info : this.id},
        function(data){
            li.hide("slow");
        }
   );
});

You can use .closest(), like this:

$(this).closest(".list_item") //gets the ancestor <div class="list_item">

In your case since this won't be the clicked element in the $.post() callback, it'll look like this:

$(".approve").click(function(){
   var li = $(this).closest(".list_item");
   $.post(
        "php/judge_work.php",
        {action : "1", work_info : this.id},
        function(data){
            li.hide("slow");
        }
   );
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文