JQUERY fadeIn - 为什么它闪烁整个 UL,而不是正在附加的 LI?

发布于 2024-08-25 14:55:53 字数 199 浏览 3 评论 0原文

鉴于以下情况:

$("#taglist").append('<li><a href="">' + v + '</a></li>').hide().fadeIn();

为什么它会在整个标签列表 LI 列表中消失,而不是使用我想要发生的附加的新项目?

谢谢

Given the following:

$("#taglist").append('<li><a href="">' + v + '</a></li>').hide().fadeIn();

Why does it fadeIn the entire taglist LI list, and not juse the new item that was appended which is what I want to happen?

Thanks

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

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

发布评论

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

评论(5

我偏爱纯白色 2024-09-01 14:55:53

与大多数其他 jQuery 函数一样,append 返回调用它的原始元素。
因此,您将淡出整个

您正在寻找 appendTo

$('<li><a href="">' + v + '</a></li>').hide().appendTo("#taglist").fadeIn();

此外,您还存在通过 v 变量进行的 HTML 注入漏洞。

Like most other jQuery functions, append returns the original element(s) that it was called on.
Therefore, you're fading the entire <ul>.

You're looking for appendTo:

$('<li><a href="">' + v + '</a></li>').hide().appendTo("#taglist").fadeIn();

Also, you have an HTML injection vulnerability through the v variable.

相思故 2024-09-01 14:55:53

.fadeIn() 应用于#taglist?尝试将其分成两部分,并向新的 li 添加一个类,然后执行

$('li.new_class_name').fadeIn();

或者您也可以执行

$('#taglist li:last').fadeIn();

您喜欢的任何操作。当然,我假设在第一个示例中您有逻辑迭代/创建新的 li,您可以在其中附加一个数字到新类以识别淡入。完成附加后,第二个示例更实用。

正如您从所有答案中看到的,jQuery 的美妙之处在于有很多方法可以实现这一点。

.fadeIn() applying to the #taglist? Try splitting it into two, and adding a class to the new li, then doing

$('li.new_class_name').fadeIn();

Or you may also be able to do

$('#taglist li:last').fadeIn();

Whatever you prefer. Of course I'm assuming in the first example you have logic iterating/creating the new li, where you can append a number to the new class to identify it for the fadeIn. The second example is more practical after you complete the append.

The beauty of jQuery as you can see from all the answers is there are many ways to approach this.

可是我不能没有你 2024-09-01 14:55:53

您的 jQuery 选择器的目标是 UL 而不是 li。尝试:

$('<li><a href="">' + v + '</a></li>').appendTo("#taglist").hide().fadeIn();

Your jQuery selector is targeting the UL and not the li. Try:

$('<li><a href="">' + v + '</a></li>').appendTo("#taglist").hide().fadeIn();
把回忆走一遍 2024-09-01 14:55:53

因为与 jquery 中的大多数方法一样,它返回初始对象以允许命令链接。

如果必须在一行中执行此操作,请使用 appendTo

Because as most methods in jquery, it returns the initial object to allow chaining of commands..

Use the appendTo if you have to do it in one line..

孤城病女 2024-09-01 14:55:53

这最终工作得很好。

                $("#taglist").append('<li><a href="">' + v + '</a></li>');
                $('#taglist').children(':last').hide().fadeIn();

This ended up working nicely.

                $("#taglist").append('<li><a href="">' + v + '</a></li>');
                $('#taglist').children(':last').hide().fadeIn();
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文