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代碼,但我不認爲它與它有關。
請問您可以告訴我需要在其他方面添加什麼才能讓父親觸發他們的鏈接?
謝謝。