2013-08-19 30 views
0

我正在一個移動網站上工作,我想揭示隱藏的子菜單,例如Twitter的移動網站下的divs(輕掃tweet以顯示其他選項)。我非常喜歡jQuery.mmenu.js插件中的接口,但它僅限於目標ID,我需要定位類。如何編輯jQuery.mmenu.js以允許將類(不僅是ID)作爲目標?

我確定這是由Fred設置的,這意味着理論上它可以被改變。

的代碼都可以在這裏下載:http://mmenu.frebsite.nl/

PS。這篇文章主要針對弗雷德按照他的聯繫要求,但如果任何人都能想到解決方案,我很樂意嘗試。

+2

非常酷的插件,但誰是*弗雷德*? – brasofilo

+0

他是插件的創建者。我在某個地方看到了他的名字。 – BHOLT

+0

未來,您可能不想在特定的人員面前提出問題。例如,在堆棧溢出中有約2400名名爲「Fred」的人。不過,看起來你有正確的選擇。 –

回答

-1

這應該工作一樣好:

$('.classSelector').mmenu(); 

只有真正的問題是插件將拖動事件綁定到「頁面」。因此,通過在頁面上拖動來打開菜單限於每個方向的一個菜單(「左」,「右」,「頂部」,「底部」)。

我想這將是相對容易更改插件,因此它可以綁定拖動事件到指定的元素(通過配置),回退到「頁面」。在此之前,在官方的插件來實現,試試這樣說:

for (var a = 0; a < 10; a++) 
{ 
    $(".menu" + a).mmenu({ 
     dragOpen :{ 
      open: true, 
      pageNode: $(".tweet" + a) 
     } 
    }); 
} 

打開unminified jquery.mmenu.js文件,轉到$ .fn.mmenu.dragOpen方法(上線454),並加入:

var $dragNode = (opts.pageNode && opts.pageNode instanceof $) ? opts.pageNode : $page; 

轉到線路530和改變:

$page.hammer() 

$dragNode.hammer() 

我認爲應該這樣做。

+0

我有這種工作。當我添加for循環時,菜單總是打開,但是當我刪除循環時,整個頁面都會被拖動。我希望將子菜單添加到單個div。作爲參考,在1:38這個視頻正是我所期待的:http://youtu.be/PeQxOzE6e_8?t = 1m38s – BHOLT

+0

行爲與1:38中的視頻(只移動部分頁面)不同,因爲: a)插件始終將整個頁面移出 b)菜單始終爲100%高。 – Fred

+0

也許這是一個可以在未來某個時間添加的功能? :d – BHOLT

0

你可以只把它包起來:

$('.classSelector').each(function(){ 
    $('#'+this.id).mmenu(); 
}); 

... OFC,與該類的每個對象都需要有一個id ...

如果你不想給他們IDS在HTML,這樣做:

var menuCtr = 0; 

$('.classSelector').each(function(){ 
    if(this.id == ''){ 
    this.id = 'my_mmenu_'+ menuCtr++; 
    } 
    $('#'+this.id).mmenu(); 
}); 
相關問題