Yos*_*osi 4 javascript mootools css-selectors
我正在从jQuery转移到MooTools(为了好玩..)我有这行代码:
$subMenus = $headMenu.find('li ul.sub_menu:visible');
Run Code Online (Sandbox Code Playgroud)
我怎么能用mootools写这个?
我知道我可以使用getElements但是如何检查可见的ul?(我正在使用这个(:可见)选择器).
我实现了自己的功能:
function findVisibleElements(elementsCollection){
var returnArray = [];
elementsCollection.each(function(el){
if(el.getStyle('display') === 'block'){
returnArray.push(el);
}
});
return returnArray;
}
Run Code Online (Sandbox Code Playgroud)
我想要的是向上滑动所有可见的子菜单,这就是我写的:
// Sliding up the visible sub menus
if( visibleSubMenus.length > 0 ){
visibleSubMenus.each(function(el){
var slider = new Fx.Slide(el, {duration: 2000});
slider.slideOut();
});
}
Run Code Online (Sandbox Code Playgroud)
为什么我的代码不工作?我的功能正在运行,问题在于Fx.Slide.
我用Fx.Slide添加了更多mootools.
只需扩展选择器功能 - 它就是MooTools!
$extend(Selectors.Pseudo, {
visible: function() {
if (this.getStyle('visibility') != 'hidden' && this.isVisible() && this.isDisplayed()) {
return this;
}
}
});
Run Code Online (Sandbox Code Playgroud)
之后,只需执行常规操作即可$$('div:visible')返回可见的元素.
看看我创建的示例:http://www.jsfiddle.net/oskar/zwFeV/