1 <html><head><title>../roojs1/Roo/bootstrap/Menu.js</title><link rel="stylesheet" type="text/css" href="../../../css/highlight-js.css"/></head><body class="highlightpage"><code class="jsdoc-pretty"><span class="jsdoc-comment">/*
9 * @class Roo.bootstrap.Menu
10 * @extends Roo.bootstrap.Component
11 * Bootstrap Menu class - container for MenuItems
12 * @cfg {String} type type of menu
16 * @param {Object} config The config object
20 </span><span class="jsdoc-var">Roo.bootstrap.Menu </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">config</span><span class="jsdoc-syntax">){
21 </span><span class="jsdoc-var">Roo.bootstrap.Menu.superclass.constructor.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">config</span><span class="jsdoc-syntax">);
24 </span><span class="jsdoc-var">Roo.extend</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.bootstrap.Menu</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">Roo.bootstrap.Component</span><span class="jsdoc-syntax">, {
26 </span><span class="jsdoc-comment">/// html : false,
28 </span><span class="jsdoc-var">triggerEl </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
29 </span><span class="jsdoc-var">type</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
32 </span><span class="jsdoc-var">getChildContainer </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">() {
33 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.el</span><span class="jsdoc-syntax">;
36 </span><span class="jsdoc-var">getAutoCreate </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
38 </span><span class="jsdoc-comment">//if (['right'].indexOf(this.align)!==-1) {
39 // cfg.cn[1].cls += ' pull-right'
41 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">cfg </span><span class="jsdoc-syntax">= {
42 </span><span class="jsdoc-var">tag </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'ul'</span><span class="jsdoc-syntax">,
43 </span><span class="jsdoc-var">cls </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'dropdown-menu'
45 </span><span class="jsdoc-syntax">}
47 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.type</span><span class="jsdoc-syntax">===</span><span class="jsdoc-string">'submenu'</span><span class="jsdoc-syntax">) {
48 </span><span class="jsdoc-var">cfg.cls</span><span class="jsdoc-syntax">=</span><span class="jsdoc-string">'submenu active'
49 </span><span class="jsdoc-syntax">}
51 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">cfg</span><span class="jsdoc-syntax">;
53 </span><span class="jsdoc-var">initEvents </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">() {
54 </span><span class="jsdoc-comment">// Roo.log("ADD event");
55 // Roo.log(this.triggerEl.dom);
56 </span><span class="jsdoc-var">this.triggerEl.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'click'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.toggle</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
57 </span><span class="jsdoc-var">this.triggerEl.addClass</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'dropdown-toggle'</span><span class="jsdoc-syntax">);
60 </span><span class="jsdoc-var">toggle </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">)
62 </span><span class="jsdoc-comment">//Roo.log(e.getTarget());
63 // Roo.log(this.triggerEl.dom);
64 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.get</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e.getTarget</span><span class="jsdoc-syntax">())</span><span class="jsdoc-var">.findParent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'.dropdown-menu'</span><span class="jsdoc-syntax">)) {
65 </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
67 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">isActive </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.triggerEl.hasClass</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'open'</span><span class="jsdoc-syntax">);
68 </span><span class="jsdoc-comment">// if disabled.. ingore
69 </span><span class="jsdoc-var">this.clearMenus</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">);
70 </span><span class="jsdoc-comment">//if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) {
71 // if mobile we use a backdrop because click events don't delegate
72 // $('<div class="dropdown-backdrop"/>').insertAfter($(this)).on('click', clearMenus)
75 //var relatedTarget = { relatedTarget: this }
76 //$parent.trigger(e = $.Event('show.bs.dropdown', relatedTarget))
78 //if (e.isDefaultPrevented()) return;
80 </span><span class="jsdoc-var">this.triggerEl</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">isActive </span><span class="jsdoc-syntax">? </span><span class="jsdoc-string">'removeClass' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'addClass'</span><span class="jsdoc-syntax">](</span><span class="jsdoc-string">'open'</span><span class="jsdoc-syntax">);
82 </span><span class="jsdoc-comment">// .trigger('shown.bs.dropdown', relatedTarget)
84 </span><span class="jsdoc-var">this.triggerEl.focus</span><span class="jsdoc-syntax">();
85 </span><span class="jsdoc-comment">// Roo.log(e);
86 </span><span class="jsdoc-var">e.preventDefault</span><span class="jsdoc-syntax">();
90 </span><span class="jsdoc-var">clearMenus </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
92 </span><span class="jsdoc-comment">//$(backdrop).remove()
93 </span><span class="jsdoc-var">Roo.select</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'.dropdown-toggle'</span><span class="jsdoc-syntax">,</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.each</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">aa</span><span class="jsdoc-syntax">) {
94 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">aa.hasClass</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'open'</span><span class="jsdoc-syntax">)) {
95 </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
97 </span><span class="jsdoc-comment">// triger close...
98 </span><span class="jsdoc-var">aa.removeClass</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'open'</span><span class="jsdoc-syntax">);
99 </span><span class="jsdoc-comment">//var parent = getParent($(this))
100 //var relatedTarget = { relatedTarget: this }
102 //$parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget))
103 //if (e.isDefaultPrevented()) return
104 //$parent.removeClass('open').trigger('hidden.bs.dropdown', relatedTarget)
105 </span><span class="jsdoc-syntax">})
113 </span></code></body></html>