对不起,我不是一个真正的程序员,但我试图了解mootools的运作方式以及我做错了什么。
window.addEvent('domready', function() {
$$('.wl').addEvent('click', function() {
this.getNext().getNext().getChildren('.wd').slide();
});
});
HTML:
<li>
<a class="wl" href="javascript:;">main</a>
<span class="dictinfo"></span>
<div class="wd">
</div>
</li>
HTML2:
<li>
<a class="wl" href="javascript:;">main</a>
<audio id="audio1" src="audio1.mp3"></audio>
<span class="dictinfo"></span>
<button>Click</button>
<div class="wd"></div>
</li>
第一个例子可以很好地滑入和滑出&#34; wd&#34;什么时候&#34; wl&#34;点击。然而,在第二个例子中它不起作用,因为标签的顺序是不同的。我可以通过添加更多getNext()来解决这个问题,但我希望这是动态的,即我希望脚本能够获得下一个元素,直到遇到带有&#34; wd&#34;上课并开展工作。现在它太僵硬了,它必须是灵活的,让我可以自由地添加中间的元素&#34; wd&#34;和&#34; wl&#34;。
答案 0 :(得分:2)
将评论写入答案。
使其不那么严格/依赖于特定标记可以通过两种方式完成:
$$('.wl').addEvent('click', function(){
this.getParent('li').getElement('.wd').slide();
});
上面的优点是不关心li
中元素的嵌套结构,它们不需要是链接的兄弟姐妹。
如果他们永远是兄弟姐妹,您也可以使用http://mootools.net/core/docs/1.5.1/Element/Element#Element:getNext
$$('.wl').addEvent('click', function(){
this.getNext('.wd').slide();
});