我正在移动网站上工作,我想在Twitter的移动网站上显示隐藏的子菜单(刷一下推文以显示其他选项)。我非常喜欢jQuery.mmenu.js插件中的接口,但它仅限于目标ID,我需要定位类。
我确信这是由Fred设置的,这在理论上可以改变。
这些代码都可以在这里下载:http://mmenu.frebsite.nl/
PS。这篇文章主要是根据他的联系要求给弗雷德,但如果有人能想到解决方案,我很乐意尝试。
答案 0 :(得分:0)
你可以把它包起来:
$('.classSelector').each(function(){
$('#'+this.id).mmenu();
});
... ofc,该类的每个对象都需要有一个id ...
如果你不想在html中给它们ID,请执行以下操作:
var menuCtr = 0;
$('.classSelector').each(function(){
if(this.id == ''){
this.id = 'my_mmenu_'+ menuCtr++;
}
$('#'+this.id).mmenu();
});
答案 1 :(得分:-1)
这也应该有效:
$('.classSelector').mmenu();
唯一真正的问题是该插件将拖动事件绑定到“页面”。因此,通过在页面上拖动来打开菜单仅限于每个方向一个菜单(“左”,“右”,“顶”,“底”)。
我想更改插件会相对容易,因此它可以将拖动事件绑定到指定的元素(通过配置)并回退到“页面”。在官方插件中实现之前,请尝试这样:
for ( var a = 0; a < 10; a++ )
{
$(".menu" + a).mmenu({
dragOpen :{
open: true,
pageNode: $(".tweet" + a)
}
});
}
打开未公开的jquery.mmenu.js文件,转到$ .fn.mmenu.dragOpen方法(第454行)并添加:
var $dragNode = ( opts.pageNode && opts.pageNode instanceof $ ) ? opts.pageNode : $page;
转到第530行并更改:
$page.hammer()
到
$dragNode.hammer()
我认为应该这样做。