2011-07-04 25 views
0
require 'rubygems' 
require 'action_view' 
require 'active_support' 

class MenuItem 
    include ActionView::Helpers::TagHelper, 
      ActionView::Helpers::UrlHelper 

    attr_accessor :children, :link 
    cattr_accessor :request 

    def initialize(title, link, level, link_opts={}) 
    @title, @link, @level, @link_opts = title, link, level, link_opts 
    @children = [] 
    end 

    def add(title, link, link_opts={}, &block) 
    returning(MenuItem.new(title, link, @level +1, link_opts)) do |adding| 
     @children << adding 
     yield adding if block_given? 
    end 
    end 

    def to_s 
    content_tag(:li, content_tag(:div, link_to(@title, @link, @link_opts), :class => "menu_header_level_"[email protected]_s) + child_output, ({:class => 'active'} if active?)).html_safe 
    end 

    def level_class 
    "menu_level_#{@level}" 
    end 

    def child_output 
    children.empty? ? '' : content_tag(:ul, @children.collect(&:to_s).join.html_safe, :class => level_class) 
    end 

    def active? 
    children.any?(&:active?) || on_current_page? 
    end 

    def on_current_page? 
    # set it for current_page? defined in UrlHelper 
    # current_page?(@link) 
    false 
    end 

    # def request 
    #  @@request 
    # end 
end 

class SemanticMenu < MenuItem 

    def initialize(rq, opts={},&block) 
    @@request = rq 
    @opts  = {:class => 'menu'}.merge opts 
    @level  = 0 
    @children = [] 
    yield self if block_given? 
    end 

    def to_s 
    content_tag(:ul, @children.collect(&:to_s).join.html_safe, @opts).html_safe 
    end 
end 

你好。我試圖改變Semantic-Menu根的行爲。當我點擊其中一個根時,菜單會下降並顯示所有的孩子。我想要發生的是當我點擊時,它會進入默認頁面,然後顯示這些孩子。語義菜單似乎只允許低層次的鏈接,而不是主要的鏈接。只有當他們沒有孩子時,根鏈接纔有用。語義菜單根bahaviour

下面的代碼是位於Ruby插件中的代碼。我認爲是需要修改的。有HTML代碼,但我不認爲它與它有關。

請問您可以告訴我需要在其他方面添加什麼才能讓父親觸發他們的鏈接?

謝謝。

回答