以下脚本根据div的状态显示不同的背景。
当它没有展开时,会显示“加号(+)”符号,而展开时则没有背景图像(不显示任何内容)。
问题是只能工作一次。
(.mix值使Div扩展,.meta类切换到不同的背景。)
有任何线索吗?
Jquery代码:
$(document).ready(function() {
$('.meta').click(function() {
$(this).css('background', 'none');
});
$('.mix').click(function(){
var collapse_content_selector = $(this).attr('href');
var toggle= $(this);
$('.meta').click(function() {
$(this).css('background', 'url(images/arrow_down.png) no-repeat scroll 95% 97% transparent');
});
$(collapse_content_selector).toggle(function(){
});
$('.meta').click(function() {
$(this).css('background', 'none');
});
});
});
谢谢!
答案 0 :(得分:0)
你的代码看起来很复杂。我想你要找的是:
$('.mix').click(function() {
var c = $(this).children();
c.filter('.meta').toggleClass('background');
c.filter(':last').toggle(function() {});
});
然后,您可以创建一个名为的CSS类,例如background
将图像添加到具有类.meta
的元素。
<强>解释强>
单击父元素将始终切换其内容,您可以将事件处理程序附加到此元素$('.mix').click();
。
这个元素的子元素总是相同的,所以我选择它们var c = $(this).children();
。现在,您要切换“+” - 使用类meta
对孩子进行签名。要获取此元素,您可以过滤子项并在结果c.filter('.meta').toggleClass('background');
上切换类。最后,您要切换内容。内容始终是最后一个孩子。因此,只需对其进行过滤并应用函数c.filter(':last').toggle(function() {});
。
<强>演示强>