Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
B
bootstrap-multiselect
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Administrator
bootstrap-multiselect
Commits
8df89fd3
Commit
8df89fd3
authored
May 25, 2015
by
David Stutz
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #521 from aqwsez/master
Added option to collapse groups (some kind of sub menu)
parents
2514256e
4888cde8
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
173 additions
and
1 deletion
+173
-1
collapsibleOptGroups.js
dist/js/collapsibleOptGroups.js
+92
-0
index.html
index.html
+81
-1
No files found.
dist/js/collapsibleOptGroups.js
0 → 100644
View file @
8df89fd3
!
function
(
e
)
{
"
use strict
"
;
jQuery
.
fn
.
multiselect
.
Constructor
.
prototype
.
selectAll
=
(
function
()
{
var
cached_function
=
jQuery
.
fn
.
multiselect
.
Constructor
.
prototype
.
selectAll
;
return
function
()
{
var
args
=
Array
.
prototype
.
slice
.
call
(
arguments
);
args
[
0
]
=
(
this
.
options
.
enableCollapsibleOptGroups
&&
this
.
options
.
multiple
)
?
false
:
args
[
0
];
cached_function
.
apply
(
this
,
args
);
};
}());
jQuery
.
fn
.
multiselect
.
Constructor
.
prototype
.
deselectAll
=
(
function
()
{
var
cached_function
=
jQuery
.
fn
.
multiselect
.
Constructor
.
prototype
.
deselectAll
;
return
function
()
{
var
args
=
Array
.
prototype
.
slice
.
call
(
arguments
);
args
[
0
]
=
(
this
.
options
.
enableCollapsibleOptGroups
&&
this
.
options
.
multiple
)
?
false
:
args
[
0
];
cached_function
.
apply
(
this
,
args
);
};
}());
jQuery
.
fn
.
multiselect
.
Constructor
.
prototype
.
createOptgroup
=
(
function
()
{
var
cached_function
=
jQuery
.
fn
.
multiselect
.
Constructor
.
prototype
.
createOptgroup
;
return
function
()
{
var
args
=
Array
.
prototype
.
slice
.
call
(
arguments
);
var
t
=
args
[
0
];
if
(
this
.
options
.
enableCollapsibleOptGroups
&&
this
.
options
.
multiple
)
{
var
n
=
e
(
t
).
attr
(
"
label
"
);
var
v
=
e
(
t
).
attr
(
"
value
"
);
var
r
=
e
(
'
<li class="multiselect-item multiselect-group"><a href="javascript:void(0);"><input type="checkbox" value="
'
+
v
+
'
"/><b>
'
+
n
+
'
<b class="caret"></b></b></a></li>
'
);
if
(
this
.
options
.
enableClickableOptGroups
)
{
r
.
addClass
(
"
multiselect-group-clickable
"
)
}
this
.
$ul
.
append
(
r
);
if
(
e
(
t
).
is
(
"
:disabled
"
))
{
r
.
addClass
(
"
disabled
"
)
}
e
(
"
option
"
,
t
).
each
(
e
.
proxy
(
function
(
e
,
t
)
{
this
.
createOptionValue
(
t
)
},
this
))
}
else
{
cached_function
.
apply
(
this
,
arguments
);
}
};
}());
jQuery
.
fn
.
multiselect
.
Constructor
.
prototype
.
buildDropdownOptions
=
(
function
()
{
var
cached_function
=
jQuery
.
fn
.
multiselect
.
Constructor
.
prototype
.
buildDropdownOptions
;
return
function
()
{
cached_function
.
apply
(
this
,
arguments
);
if
(
this
.
options
.
enableCollapsibleOptGroups
&&
this
.
options
.
multiple
)
{
e
(
"
li.multiselect-group input
"
,
this
.
$ul
).
off
();
e
(
"
li.multiselect-group
"
,
this
.
$ul
).
siblings
().
not
(
"
li.multiselect-group, li.multiselect-all
"
,
this
.
$ul
).
each
(
function
()
{
$
(
this
).
toggleClass
(
'
hidden
'
,
true
);
});
e
(
"
li.multiselect-group
"
,
this
.
$ul
).
on
(
"
click
"
,
e
.
proxy
(
function
(
t
)
{
t
.
stopPropagation
();
},
this
));
e
(
"
li.multiselect-group > a > b
"
,
this
.
$ul
).
on
(
"
click
"
,
e
.
proxy
(
function
(
t
)
{
t
.
stopPropagation
();
var
n
=
e
(
t
.
target
).
closest
(
'
li
'
);
var
r
=
n
.
nextUntil
(
"
li.multiselect-group
"
);
var
i
=
true
;
r
.
each
(
function
()
{
i
=
i
&&
e
(
this
).
hasClass
(
'
hidden
'
);
});
r
.
toggleClass
(
'
hidden
'
,
!
i
);
},
this
));
e
(
"
li.multiselect-group > a > input
"
,
this
.
$ul
).
on
(
"
change
"
,
e
.
proxy
(
function
(
t
)
{
t
.
stopPropagation
();
var
n
=
e
(
t
.
target
).
closest
(
'
li
'
);
var
r
=
n
.
nextUntil
(
"
li.multiselect-group
"
);
var
i
=
true
;
var
s
=
r
.
find
(
"
input
"
);
s
.
each
(
function
()
{
i
=
i
&&
e
(
this
).
prop
(
"
checked
"
)
});
s
.
prop
(
"
checked
"
,
!
i
).
trigger
(
"
change
"
)
},
this
));
e
(
"
li.multiselect-all
"
,
this
.
$ul
).
css
(
'
background
'
,
'
#f3f3f3
'
).
css
(
'
border-bottom
'
,
'
1px solid #eaeaea
'
);
e
(
"
li.multiselect-group > a, li.multiselect-all > a > label.checkbox
"
,
this
.
$ul
).
css
(
'
padding
'
,
'
3px 20px 3px 35px
'
);
e
(
"
li.multiselect-group > a > input
"
,
this
.
$ul
).
css
(
'
margin
'
,
'
4px 0px 5px -20px
'
);
}
};
}());
}(
window
.
jQuery
)
index.html
View file @
8df89fd3
<!DOCTYPE html>
<!DOCTYPE html>
<html>
<head>
<title>
Bootstrap Multiselect
</title>
...
...
@@ -15,6 +15,7 @@
<link
rel=
"stylesheet"
href=
"dist/css/bootstrap-multiselect.css"
type=
"text/css"
>
<script
type=
"text/javascript"
src=
"dist/js/bootstrap-multiselect.js"
></script>
<script
type=
"text/javascript"
src=
"dist/js/collapsibleOptGroups.js"
></script>
<script
type=
"text/javascript"
>
$
(
document
).
ready
(
function
()
{
...
...
@@ -2155,6 +2156,85 @@
<
option value="m"
>
Option 13
<
/option
>
<
option value="n"
>
Option 14
<
/option
>
<
/select
>
</pre>
</div>
</td>
</tr>
<tr>
<td>
<code>
enableCollapsibleOptGroups
</code>
</td>
<td>
<p>
Make your groups collapsible.
</p>
<div
class=
"example"
>
<script
type=
"text/javascript"
>
$
(
document
).
ready
(
function
()
{
$
(
'
#example-enableCollapsibleOptGroups
'
).
multiselect
({
enableCollapsibleOptGroups
:
true
});
});
</script>
<select
id=
"example-enableCollapsibleOptGroups"
multiple=
"multiple"
>
<optgroup
label=
"Group1"
>
<option
value=
"1a"
>
Option 1
</option>
<option
value=
"1b"
>
Option 2
</option>
<option
value=
"1c"
>
Option 3
</option>
<option
value=
"1d"
>
Option 4
</option>
<option
value=
"1e"
>
Option 5
</option>
</optgroup>
<optgroup
label=
"Group2"
>
<option
value=
"2a"
>
Option 1
</option>
<option
value=
"2b"
>
Option 2
</option>
<option
value=
"2c"
>
Option 3
</option>
<option
value=
"2d"
>
Option 4
</option>
<option
value=
"2e"
>
Option 5
</option>
</optgroup>
<optgroup
label=
"Group3"
>
<option
value=
"3a"
>
Option 1
</option>
<option
value=
"3b"
>
Option 2
</option>
<option
value=
"3c"
>
Option 3
</option>
<option
value=
"3d"
>
Option 4
</option>
<option
value=
"3e"
>
Option 5
</option>
</optgroup>
</select>
</div>
<div
class=
"highlight"
>
<pre
class=
"prettyprint linenums"
>
<
script type="text/javascript"
>
$(document).ready(function() {
$('#example-enableCollapsibleOptGroups').multiselect({
enableCollapsibleOptGroups: true
});
});
<
/script
>
<
select id="example-enableCollapsibleOptGroups" multiple="multiple"
>
<
optgroup label="Group1"
>
<
option value="1a"
>
Option 1
<
/option
>
<
option value="1b"
>
Option 2
<
/option
>
<
option value="1c"
>
Option 3
<
/option
>
<
option value="1d"
>
Option 4
<
/option
>
<
option value="1e"
>
Option 5
<
/option
>
<
/optgroup
>
<
optgroup label="Group2"
>
<
option value="2a"
>
Option 1
<
/option
>
<
option value="2b"
>
Option 2
<
/option
>
<
option value="2c"
>
Option 3
<
/option
>
<
option value="2d"
>
Option 4
<
/option
>
<
option value="2e"
>
Option 5
<
/option
>
<
/optgroup
>
<
optgroup label="Group3"
>
<
option value="3a"
>
Option 1
<
/option
>
<
option value="3b"
>
Option 2
<
/option
>
<
option value="3c"
>
Option 3
<
/option
>
<
option value="3d"
>
Option 4
<
/option
>
<
option value="3e"
>
Option 5
<
/option
>
<
/optgroup
>
<
/select
>
</pre>
</div>
</td>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment