【发布时间】:2010-09-21 07:40:46
【问题描述】:
我正在使用 jQuery 做一些恶作剧,以便在我的扩展器旁边放置小加号/减号图标。它类似于 windows 文件树或 firebugs 代码扩展器。
它有效,但不够具体。
希望这是有道理的......
$('div.toggle').hide();//hide all divs that are part of the expand/collapse
$('ul.product-info li a').toggle(function(event){
event.preventDefault();
$(this).next('div').slideToggle(200);//find the next div and sliiiide it
$('img.expander').attr('src','img/content/info-close.gif');//this is the part thats not specific enough!!!
},function(event) { // opposite here
event.preventDefault();
$(this).next('div').slideToggle(200);
$('img.expander').attr('src','img/content/info-open.gif');
});
<ul class="product-info">
<li>
<a class="img-link" href="#"><img class="expander" src="img/content/info-open.gif" alt="Click to exand this section" /> <span>How it compares to the other options</span>
</a>
<div class="toggle"><p>Content viewable when expanded!</p></div>
</li>
</ul>
页面上有大量$('img.expander') 标签,但我需要具体说明。我已经尝试过 next() 功能(就像我用来查找下一个 div 一样),但它说它未定义。如何找到我的特定 img.expander 标签?谢谢。
编辑,按照道格拉斯的解决方案更新代码:
$('div.toggle').hide();
$('ul.product-info li a').toggle(function(event){
//$('#faq-copy .answer').hide();
event.preventDefault();
$(this).next('div').slideToggle(200);
$(this).contents('img.expander').attr('src','img/content/info-close.gif');
//alert('on');
},function(event) { // same here
event.preventDefault();
$(this).next('div').slideToggle(200);
$(this).contents('img.expander').attr('src','img/content/info-open.gif');
});
【问题讨论】:
-
对不起,我的标签亚当很紧张;)
标签: javascript jquery html dom