jQuery 嵌套类选择器
我目前正在尝试解决我正在使用的 jQuery 脚本的一个小但烦人的问题。您可以在此处查看问题和脚本: http://jsfiddle.net/nRD4L/12/
我正在使用此脚本
(function($, undefined) {
$(document).ready(function() {
var $container = $(".update_content");
$container.find(".social_media_updates_extended_view").hide();
$container.delegate(".update_extend .btnFadeIn", "click", function(event) {
var $view = $(this).closest(".wrapper_update_extend").prev(".social_media_updates_extended_view").stop(true).fadeToggle(200);
$container.find(".social_media_updates_extended_view").not($view[0]).stop(true).fadeOut(200);
})
})
})(jQuery);
对于下面的 HTML,脚本工作正常,但是当我进行小的更改(查看下面的 HTML)时,由于 HTML 结构的更改,它不起作用。
<div class="wrapper_update">
<div class="update_content">
<div class="social_media_updates_extended_view">
<p>Karel de Bruin</p>
</div>
<div class="wrapper_update_extend">
<div class="update_extend">
<span class="btnFadeIn">fade button span</span>
</div>
</div>
</div>
上面的 HTML 工作正常,但下面的 HTML 不起作用,因为现在 div .wrapper_update_extend 不在 div.update_content 内。
<div class="wrapper_update">
<div class="update_content">
<div class="social_media_updates_extended_view">
<p>Karel de Bruin</p>
</div>
<p>content</p>
</div>
<div class="wrapper_update_extend">
<div class="update_extend">
<span class="btnFadeIn">fade button span</span>
</div>
</div>
因此,我需要对脚本进行一些更改,以在 .update_content 类中找到 .social_media_updates_extended_view 类。
有人有这方面的建议吗?
I'm currently trying to figure out a small but anoying problem with a jQuery script that I am using. You can see the problem and script here : http://jsfiddle.net/nRD4L/12/
I am using this script
(function($, undefined) {
$(document).ready(function() {
var $container = $(".update_content");
$container.find(".social_media_updates_extended_view").hide();
$container.delegate(".update_extend .btnFadeIn", "click", function(event) {
var $view = $(this).closest(".wrapper_update_extend").prev(".social_media_updates_extended_view").stop(true).fadeToggle(200);
$container.find(".social_media_updates_extended_view").not($view[0]).stop(true).fadeOut(200);
})
})
})(jQuery);
With the HTML below the script works fine but when I make a small change (check out the HTML below) it does not work due to a change in HTML strcuture.
<div class="wrapper_update">
<div class="update_content">
<div class="social_media_updates_extended_view">
<p>Karel de Bruin</p>
</div>
<div class="wrapper_update_extend">
<div class="update_extend">
<span class="btnFadeIn">fade button span</span>
</div>
</div>
</div>
The HTML above works fine but the HTML below does not work because now the div .wrapper_update_extend is not within the div.update_content.
<div class="wrapper_update">
<div class="update_content">
<div class="social_media_updates_extended_view">
<p>Karel de Bruin</p>
</div>
<p>content</p>
</div>
<div class="wrapper_update_extend">
<div class="update_extend">
<span class="btnFadeIn">fade button span</span>
</div>
</div>
So I need to change the script a bit to find the class .social_media_updates_extended_view witihin the class .update_content.
Anyone got a tip for this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
这里是一个工作示例。但是我不确定您为什么要这样改变内容的结构?
Here is a working example. However I'm unsure why you would want to change the structure of your content like that?
将
$container
设置为适当的选择器(如果找不到更好的选择器,则设置为$('body')
)Set the
$container
to the appropriate selector (or to$('body')
if you can't find better one)您拥有的代码假设了一些事情:
您想要的所有内容都位于
.update_content
下。.wrapper_update_extend
前面是.social_media_updates_extended_view
,这就是您要显示的视图。您可以使用下面的代码来破坏这两件事。我无法从代码中看出你想要的第二件事是什么,所以恐怕我无法指出如何改进它。
The code you have assumes a few things:
everything you want is under
.update_content
..wrapper_update_extend
is preceded by a.social_media_updates_extended_view
, and that's the one you want to show.You break both things with the code below. I can't tell from the code what you want with the second thing, so I can't indicate how to improve it I'm afraid.
这是一个工作的 jsfiddle。 http://jsfiddle.net/YsMwj/
我将容器从 更改
为
然后将
$view
的选择器从 更改为
Here is a working jsfiddle. http://jsfiddle.net/YsMwj/
I changed the container from
to
Then changed the selector for
$view
fromto