2
0
mirror of https://github.com/tenrok/bootstrap.git synced 2026-06-14 18:42:30 +03:00

patch dropdowns for #7118

This commit is contained in:
fat
2013-05-17 10:13:22 -07:00
parent 37d0a30589
commit b9bd82b496
6 changed files with 36 additions and 4 deletions
+9
View File
@@ -3009,6 +3009,15 @@ table th[class*="span"],
display: block; display: block;
} }
.dropdown-backdrop {
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: 990;
}
.pull-right > .dropdown-menu { .pull-right > .dropdown-menu {
right: 0; right: 0;
left: auto; left: auto;
+5 -1
View File
@@ -52,6 +52,10 @@
clearMenus() clearMenus()
if (!isActive) { if (!isActive) {
if ('ontouchstart' in document.documentElement) {
// if mobile we we use a backdrop because click events don't delegate
$('<div class="dropdown-backdrop"/>').insertBefore($(this)).on('click', clearMenus)
}
$parent.toggleClass('open') $parent.toggleClass('open')
} }
@@ -104,6 +108,7 @@
} }
function clearMenus() { function clearMenus() {
$('.dropdown-backdrop').remove()
$(toggle).each(function () { $(toggle).each(function () {
getParent($(this)).removeClass('open') getParent($(this)).removeClass('open')
}) })
@@ -158,7 +163,6 @@
$(document) $(document)
.on('click.dropdown.data-api', clearMenus) .on('click.dropdown.data-api', clearMenus)
.on('click.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() }) .on('click.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })
.on('click.dropdown-menu', function (e) { e.stopPropagation() })
.on('click.dropdown.data-api' , toggle, Dropdown.prototype.toggle) .on('click.dropdown.data-api' , toggle, Dropdown.prototype.toggle)
.on('keydown.dropdown.data-api', toggle + ', [role=menu]' , Dropdown.prototype.keydown) .on('keydown.dropdown.data-api', toggle + ', [role=menu]' , Dropdown.prototype.keydown)
+5 -1
View File
@@ -685,6 +685,10 @@
clearMenus() clearMenus()
if (!isActive) { if (!isActive) {
if ('ontouchstart' in document.documentElement) {
// if mobile we we use a backdrop because click events don't delegate
$('<div class="dropdown-backdrop"/>').insertBefore($(this)).on('click', clearMenus)
}
$parent.toggleClass('open') $parent.toggleClass('open')
} }
@@ -737,6 +741,7 @@
} }
function clearMenus() { function clearMenus() {
$('.dropdown-backdrop').remove()
$(toggle).each(function () { $(toggle).each(function () {
getParent($(this)).removeClass('open') getParent($(this)).removeClass('open')
}) })
@@ -791,7 +796,6 @@
$(document) $(document)
.on('click.dropdown.data-api', clearMenus) .on('click.dropdown.data-api', clearMenus)
.on('click.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() }) .on('click.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })
.on('click.dropdown-menu', function (e) { e.stopPropagation() })
.on('click.dropdown.data-api' , toggle, Dropdown.prototype.toggle) .on('click.dropdown.data-api' , toggle, Dropdown.prototype.toggle)
.on('keydown.dropdown.data-api', toggle + ', [role=menu]' , Dropdown.prototype.keydown) .on('keydown.dropdown.data-api', toggle + ', [role=menu]' , Dropdown.prototype.keydown)
+1 -1
View File
File diff suppressed because one or more lines are too long
+5 -1
View File
@@ -52,6 +52,10 @@
clearMenus() clearMenus()
if (!isActive) { if (!isActive) {
if ('ontouchstart' in document.documentElement) {
// if mobile we we use a backdrop because click events don't delegate
$('<div class="dropdown-backdrop"/>').insertBefore($(this)).on('click', clearMenus)
}
$parent.toggleClass('open') $parent.toggleClass('open')
} }
@@ -104,6 +108,7 @@
} }
function clearMenus() { function clearMenus() {
$('.dropdown-backdrop').remove()
$(toggle).each(function () { $(toggle).each(function () {
getParent($(this)).removeClass('open') getParent($(this)).removeClass('open')
}) })
@@ -158,7 +163,6 @@
$(document) $(document)
.on('click.dropdown.data-api', clearMenus) .on('click.dropdown.data-api', clearMenus)
.on('click.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() }) .on('click.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })
.on('click.dropdown-menu', function (e) { e.stopPropagation() })
.on('click.dropdown.data-api' , toggle, Dropdown.prototype.toggle) .on('click.dropdown.data-api' , toggle, Dropdown.prototype.toggle)
.on('keydown.dropdown.data-api', toggle + ', [role=menu]' , Dropdown.prototype.keydown) .on('keydown.dropdown.data-api', toggle + ', [role=menu]' , Dropdown.prototype.keydown)
+11
View File
@@ -135,6 +135,17 @@
} }
} }
// Backdrop to catch body clicks on mobile, etc.
// ---------------------------
.dropdown-backdrop {
position: fixed;
left: 0;
right: 0;
bottom: 0;
top: 0;
z-index: @zindexDropdown - 10;
}
// Right aligned dropdowns // Right aligned dropdowns
// --------------------------- // ---------------------------
.pull-right > .dropdown-menu { .pull-right > .dropdown-menu {