引用选择器名称的更简洁的方式

发布于 2025-01-03 02:12:12 字数 931 浏览 0 评论 0原文

下面的代码有效,但我怀疑有一个清理器。

有什么替代方法来引用选择器名称,特别是第一个不同的名称?

jQuery

$(".add_one_more").click(function(){            
            var themsg = $(this).parent().attr('id');            
            $('"#'+themsg+'"').stop().fadeOut("slow",function(){                
                $("#entry_area").stop().fadeIn("slow");
            });

            return false;             
        });

HTML

<div id="entry_area">Form Goes Here</div>
<div id="msg0">
    <span style="font-size: 130%; color: green;">One Message</span>
    <a href="" class="add_one_more">Try Again</a>
</div>
<div id="msg1" style="width: 550px;">
    <span style="font-size: 130%; color: red;">Another Message</span>
    <a href="" class="add_one_more">Try Again</a>
</div>

The code below works, but I suspect there is be a cleaner.

Any alternative to reference the selector names, specially the first differently?

jQuery

$(".add_one_more").click(function(){            
            var themsg = $(this).parent().attr('id');            
            $('"#'+themsg+'"').stop().fadeOut("slow",function(){                
                $("#entry_area").stop().fadeIn("slow");
            });

            return false;             
        });

HTML

<div id="entry_area">Form Goes Here</div>
<div id="msg0">
    <span style="font-size: 130%; color: green;">One Message</span>
    <a href="" class="add_one_more">Try Again</a>
</div>
<div id="msg1" style="width: 550px;">
    <span style="font-size: 130%; color: red;">Another Message</span>
    <a href="" class="add_one_more">Try Again</a>
</div>

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

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

发布评论

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

评论(4

最佳男配角 2025-01-10 02:12:12

您不需要选择父级并获取其 ID。

    $(".add_one_more").click(function(){                      
        $(this).parent().stop().fadeOut("slow",function(){                
            $("#entry_area").stop().fadeIn("slow");
        });

        return false;             
    });

You shouldn't need to select the parent and get its ID.

    $(".add_one_more").click(function(){                      
        $(this).parent().stop().fadeOut("slow",function(){                
            $("#entry_area").stop().fadeIn("slow");
        });

        return false;             
    });
心作怪 2025-01-10 02:12:12

我很喜欢你正在做的事情,但我会添加我的想法,让你的 js 更能适应碎片的移动。

JS

$("#entry_area, div.message").bind("stop", function(evt){
   $(this).stop().fadeIn("slow");
} );

$(".add_one_more").click(function(evt){   
  $(this).closest("div.message").trigger("stop");
  $("#entry_area").trigger("stop");      
            return false;             
        });

网页

<div id="entry_area">Form Goes Here</div>
<div id="msg0" class="message">
    <span style="font-size: 130%; color: green;">One Message</span>
    <a href="" class="add_one_more">Try Again</a>
</div>
<div id="msg1" class="message" style="width: 550px;">
    <span style="font-size: 130%; color: red;">Another Message</span>
    <a href="" class="add_one_more">Try Again</a>
</div>

I like quite a bit of what you're doing, but I'll add my thoughts on making your js more resilient to getting pieces moved around.

JS

$("#entry_area, div.message").bind("stop", function(evt){
   $(this).stop().fadeIn("slow");
} );

$(".add_one_more").click(function(evt){   
  $(this).closest("div.message").trigger("stop");
  $("#entry_area").trigger("stop");      
            return false;             
        });

html

<div id="entry_area">Form Goes Here</div>
<div id="msg0" class="message">
    <span style="font-size: 130%; color: green;">One Message</span>
    <a href="" class="add_one_more">Try Again</a>
</div>
<div id="msg1" class="message" style="width: 550px;">
    <span style="font-size: 130%; color: red;">Another Message</span>
    <a href="" class="add_one_more">Try Again</a>
</div>
温柔戏命师 2025-01-10 02:12:12

实际上,我想说,如果您毕竟不重复使用它,则不需要存储 id ,尝试:

$(".add_one_more").click(function(){            
        var $parent = $(this).parent();            
        $parent.stop().fadeOut("slow",function(){                
            $("#entry_area").stop().fadeIn("slow");
        });

        return false;             
    });

或者甚至更短,而不将 jquery 对象存储在 var 中([编辑] 这正是丹尼尔在我写这篇文章时发布的内容)。

Actually, I'd say you don't need to store the id if you don't re-use it after all, try:

$(".add_one_more").click(function(){            
        var $parent = $(this).parent();            
        $parent.stop().fadeOut("slow",function(){                
            $("#entry_area").stop().fadeIn("slow");
        });

        return false;             
    });

or even shorter without storing the jquery object in a var ([EDIT] This is exactly what Daniel posted while I was writing this).

流年里的时光 2025-01-10 02:12:12

怎么样

var themsg = $(this).parent();
themsg.stop() ...

How about

var themsg = $(this).parent();
themsg.stop() ...
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文