86 Commits
Author SHA1 Message Date
Mark Otto 1c0e4fc7bb Popovers are now flexible width:
* Instead of a fixed width, we use max-width
* Width has been increased from 240px to 280px
* Added ability to hide the title via CSS :empty selector if no title is provided
2012-12-28 14:18:59 -06:00
Mark Otto f69d12af3d Merge pull request #6407 from aurnik/master
Fix link to File structure anchor
2012-12-28 11:10:46 -08:00
Mark Otto 6f8e315b1d Merge branch 'sparanoid-transition-duration' into 2.3.0-wip
Conflicts:
	docs/assets/img/bootstrap-docs-readme.png
2012-12-28 13:08:49 -06:00
Tunghsiao Liu 3096a377a2 Add transition-duration mixin 2012-12-28 16:19:12 +08:00
Aurnik Islam aa997e274e Fix link to File structure anchor 2012-12-27 01:49:09 -08:00
Mark Otto 330b143b40 Add longer tooltip example to docs, tighten up line-height on tooltip; run make 2012-12-26 09:36:07 -06:00
Mark Otto 9749d6afc2 Merge branch '2.3.0-wip' of github.com:twitter/bootstrap into 2.3.0-wip 2012-12-26 09:21:34 -06:00
fat-kun b9c7f29134 Merge pull request #6378 from Yohn/patch-7
fixes tooltip insert problems
2012-12-24 16:17:25 -08:00
Yohn 340d90138c Update docs/templates/pages/javascript.mustache 2012-12-24 19:03:13 -05:00
Yohn 2a5fde272c Update docs/javascript.html 2012-12-24 19:01:56 -05:00
Yohn 9835549faf made container option be false 2012-12-24 18:59:37 -05:00
Yohn e867ae7b60 removed the length check
updated it to @fat's suggestion
2012-12-24 18:07:41 -05:00
fat-kun 90cdef8dfe Merge pull request #6380 from Yohn/patch-10
promote using data-toggle instead of rel for tooltip and popover
2012-12-23 19:22:51 -08:00
fat-kun 0a7c840173 Merge pull request #6375 from tkawachi/tooltip-events-2.3.0
Tooltips fires show, shown, hide, hidden events
2012-12-23 19:19:58 -08:00
Yohn dfbac13ad1 data-toggle instead of rel for tooltip and popover 2012-12-23 07:04:24 -05:00
Yohn 5da8b315c0 data-toggle instead of rel for tooltip and popover 2012-12-23 07:00:03 -05:00
Yohn da0217405f data-toggle instead of rel for tooltip and popover 2012-12-23 06:51:46 -05:00
Yohn f152dead92 Update docs/javascript.html 2012-12-23 04:25:27 -05:00
Yohn 68ff08cc91 Update docs/templates/pages/javascript.mustache 2012-12-23 04:23:18 -05:00
Yohn b6960d8cf9 Update js/tests/unit/bootstrap-tooltip.js 2012-12-23 04:21:02 -05:00
Yohn d594d6377a adding container option to tooltips 2012-12-23 04:18:16 -05:00
KAWACHI Takashi defe85bb51 Assign event variables at declarations 2012-12-23 15:17:41 +09:00
KAWACHI Takashi 7a3a88acc6 Tooltips fires show, shown, hide, hidden events
It is re-worked from #3691.
2012-12-23 14:42:13 +09:00
fat-kun 48211ad9f5 Merge pull request #6374 from whyisjake/2.3.0-wip
Update docs/templates/pages/javascript.mustache
2012-12-22 21:18:36 -08:00
Jake Spurlock 0834bd51ec Update docs/templates/pages/javascript.mustache
Adding spaces around the pipes. Makes it consistent with the rest of the docs.
2012-12-22 21:03:58 -08:00
Mark Otto f74990d898 Version bump 2012-12-22 16:10:06 -08:00
fat-kun d09b46fe37 Merge pull request #6349 from Yohn/patch-6
Fixes #5753 with tooltip('toogle')
2012-12-22 14:53:24 -08:00
fat effba9e55c add data-api namespace to dropdown 2012-12-22 14:22:45 -08:00
fat 2c0ed072b0 shifting focus to parent and adding aria menuitem for dropdown 2012-12-22 13:57:57 -08:00
fat 4d195222d4 remake js 2012-12-22 13:48:28 -08:00
fat a9e661a2b5 read data options in constructor for collapse 2012-12-22 13:48:16 -08:00
fat fad0fb683b allow multiple trigger types in tooltip and popover + default tooltip to hover & focus 2012-12-22 13:24:37 -08:00
fat e2434fefbd chnage for #6248 2012-12-21 20:27:53 -08:00
fat f59bf47081 Merge branch '2.3.0-wip' of github.com:twitter/bootstrap into 2.3.0-wip 2012-12-21 20:20:04 -08:00
fat ddd59f22c7 update mustace to reflect changes to data-slide-to 2012-12-21 20:19:33 -08:00
fat 24a36df9f6 add support for [data-slide-to] attr on carousel 2012-12-21 19:45:19 -08:00
Mark Otto 7f7039321d Fixes #6189: Add holder.js to carousel example 2012-12-21 19:10:05 -08:00
Mark Otto a55605ca57 add readme image 2012-12-21 19:04:59 -08:00
Mark Otto 442012f0f5 Smaller image update to readme 2012-12-21 19:02:33 -08:00
Mark Otto 5a2966a2c2 Downsize image 2012-12-21 18:59:51 -08:00
Mark Otto d23006a6bd Merge branch '2.3.0-wip' of github.com:twitter/bootstrap into 2.3.0-wip 2012-12-21 18:59:14 -08:00
Mark Otto ccafc8a010 Explore adding icon to readme 2012-12-21 18:58:59 -08:00
fat 818c56f078 rewrite makefile to make a bit more "efficient" + rebuild 2012-12-21 17:42:24 -08:00
fat 82a758344d add direction prop to carousel slide event 2012-12-21 17:31:54 -08:00
fat e194c3e4f4 rebuild 2012-12-21 17:25:31 -08:00
fat 5da30ee5fb Merge branch 'marcelkorpel-master' into 2.3.0-wip 2012-12-21 17:24:45 -08:00
fat d5345f806c Merge branch 'master' of git://github.com/marcelkorpel/bootstrap into marcelkorpel-master 2012-12-21 17:19:36 -08:00
Mark Otto dc32555f5b Fixes #6370: Add comment to docs on typeahead and autocomplete 2012-12-21 15:46:10 -08:00
Mark Otto 704dfb2f1d Merge pull request #6360 from Quy/2.3.0-wip
Miscellaneous changes to docs
2012-12-21 00:28:07 -08:00
Quy Ton a27bf30f0d Miscellaneous changes to docs 2012-12-20 21:38:53 -08:00
Mark Otto c1e82732cf Update new example name and links 2012-12-20 20:27:07 -08:00
Mark Otto a24e47b5b8 Update the examples index:
* Retina ready screenshots
* Added screenshot and link to justified nav example (previously unlinked marketing-alternate.html)
2012-12-20 15:08:05 -08:00
Mark Otto 43d130762b Fixes #6352: marketing-alternate broken nav in FF17 2012-12-20 14:40:39 -08:00
Mark Otto 5e4f663e69 Undo important on hide/show utilties; punt to 3.0 2012-12-20 13:46:07 -08:00
Mark Otto b6575cc72e fix up code snippet 2012-12-20 13:41:08 -08:00
Yohn a6705246d0 Update js/tests/unit/bootstrap-tooltip.js 2012-12-20 04:36:57 -05:00
Yohn e21b6459ad fixes tooltip('toggle') 2012-12-20 04:34:28 -05:00
Mark Otto 30d8eb3ed5 Merge branch 'blakeembrey-dropdown-selectors' into 2.3.0-wip 2012-12-20 01:34:19 -08:00
Mark Otto 0a1434b23b Merge branch 'dropdown-selectors' of https://github.com/blakeembrey/bootstrap into blakeembrey-dropdown-selectors 2012-12-20 01:34:10 -08:00
Mark Otto 3f493f0d0d Merge branch '2.3.0-wip' of github.com:twitter/bootstrap into 2.3.0-wip 2012-12-20 01:30:43 -08:00
Mark Otto f706acb11c Fixes #6339: Use important flag on .hide and .show utility classes 2012-12-20 01:30:32 -08:00
fat 5abe33f5d8 reset carousel in the case that it is reinstantiated twice 2012-12-20 01:13:03 -08:00
fat 6b67a83631 Merge branch '2.2.3' into 2.3.0-wip 2012-12-20 01:05:55 -08:00
fat 2c9f43f685 if carousel element already open, don't reopen it duh bruh bruh 2012-12-20 01:05:07 -08:00
Mark Otto c00f29e4d4 Fixes #6236: Fix popover font-size in input groups 2012-12-20 00:54:58 -08:00
Mark Otto 9726fded1c Get on that carousel indicator lifestyle with some new hawtness 2012-12-19 23:52:38 -08:00
Mark Otto 5d776bcfd2 Merge branch '2.2.3' of github.com:twitter/bootstrap into 2.2.3 2012-12-19 23:39:40 -08:00
fat bbe4625672 lol we dont' have affix(refresh) 2012-12-19 23:39:26 -08:00
fat 7f9ff0ba5b add js support for carousel indicators 2012-12-19 23:25:25 -08:00
fat e9eff0cbff wait 100ms before engaging affix (allows for initial browser scroll) 2012-12-19 22:37:41 -08:00
fat 96e5fa6143 whitespace in tooltip + don't pass empty selector to $() in dropdown.js 2012-12-19 22:26:36 -08:00
fat 7c456c8554 fix tooltip doc dumbness 2012-12-19 22:05:33 -08:00
fat 219d275ae6 can't extend bounding box thingy 2012-12-19 22:03:57 -08:00
fat dc4e80a655 fix ghetto ass timeout shit 2012-12-19 21:55:23 -08:00
fat 5bd8cdca91 remove inside support from tooltip + fix tooltip svg support + change makefile to rely on local npm install 2012-12-19 21:36:50 -08:00
Mark Otto dc6142751f Fixes #6337: scope '.media .pull-left' and '.media .pull-right' to immediate children only 2012-12-19 18:47:34 -08:00
Mark Otto 529ecc5a77 Version bump 2012-12-10 18:31:04 -08:00
Mark Otto cddca18f12 Fixes #6174: Caret alignment in small and mini buttons 2012-12-10 10:59:57 -08:00
Mark Otto 9d985978a3 Escape HTML of section element 2012-12-10 10:55:42 -08:00
Mark Otto 847b632577 IE10 fix in responsive utilities, not regular utilities 2012-12-10 10:29:16 -08:00
Mark Otto e324a1beb0 Simplify syntax of nesting with inline lists 2012-12-10 10:28:18 -08:00
Mark Otto 83a6a55d2c Move IE10 responsive fix to responsive utilities so Customizer gets it 2012-12-10 10:25:18 -08:00
Mark Otto 165729254b squash new line 2012-12-10 10:13:04 -08:00
Mark Otto ab5d7f863c move reset after vars and mixins 2012-12-10 09:57:23 -08:00
Blake Embrey c105906780 Update .dropdown-menu selectors to avoid conflicts with other elements. Fixes #6197 2012-12-10 16:42:58 +10:00
Marcel Korpel 0dece7a71f Set focus back to input field after clicking an item
Test 'focus is still set' added

Fixes issue #5933
2012-12-02 12:35:33 +01:00
76 changed files with 844 additions and 423 deletions
+41 -16
View File
@@ -18,8 +18,8 @@ build:
@jshint js/*.js --config js/.jshintrc @jshint js/*.js --config js/.jshintrc
@jshint js/tests/unit/*.js --config js/.jshintrc @jshint js/tests/unit/*.js --config js/.jshintrc
@echo "Running JSHint on javascript... ${CHECK} Done" @echo "Running JSHint on javascript... ${CHECK} Done"
@recess --compile ${BOOTSTRAP_LESS} > ${BOOTSTRAP} @./node_modules/.bin/recess --compile ${BOOTSTRAP_LESS} > ${BOOTSTRAP}
@recess --compile ${BOOTSTRAP_RESPONSIVE_LESS} > ${BOOTSTRAP_RESPONSIVE} @./node_modules/.bin/recess --compile ${BOOTSTRAP_RESPONSIVE_LESS} > ${BOOTSTRAP_RESPONSIVE}
@echo "Compiling LESS with Recess... ${CHECK} Done" @echo "Compiling LESS with Recess... ${CHECK} Done"
@node docs/build @node docs/build
@cp img/* docs/assets/img/ @cp img/* docs/assets/img/
@@ -27,8 +27,8 @@ build:
@cp js/tests/vendor/jquery.js docs/assets/js/ @cp js/tests/vendor/jquery.js docs/assets/js/
@echo "Compiling documentation... ${CHECK} Done" @echo "Compiling documentation... ${CHECK} Done"
@cat js/bootstrap-transition.js js/bootstrap-alert.js js/bootstrap-button.js js/bootstrap-carousel.js js/bootstrap-collapse.js js/bootstrap-dropdown.js js/bootstrap-modal.js js/bootstrap-tooltip.js js/bootstrap-popover.js js/bootstrap-scrollspy.js js/bootstrap-tab.js js/bootstrap-typeahead.js js/bootstrap-affix.js > docs/assets/js/bootstrap.js @cat js/bootstrap-transition.js js/bootstrap-alert.js js/bootstrap-button.js js/bootstrap-carousel.js js/bootstrap-collapse.js js/bootstrap-dropdown.js js/bootstrap-modal.js js/bootstrap-tooltip.js js/bootstrap-popover.js js/bootstrap-scrollspy.js js/bootstrap-tab.js js/bootstrap-typeahead.js js/bootstrap-affix.js > docs/assets/js/bootstrap.js
@uglifyjs docs/assets/js/bootstrap.js -nc > docs/assets/js/bootstrap.min.tmp.js @./node_modules/.bin/uglifyjs -nc docs/assets/js/bootstrap.js > docs/assets/js/bootstrap.min.tmp.js
@echo "/**\n* Bootstrap.js v2.2.2 by @fat & @mdo\n* Copyright 2012 Twitter, Inc.\n* http://www.apache.org/licenses/LICENSE-2.0.txt\n*/" > docs/assets/js/copyright.js @echo "/**\n* Bootstrap.js v2.3.0 by @fat & @mdo\n* Copyright 2012 Twitter, Inc.\n* http://www.apache.org/licenses/LICENSE-2.0.txt\n*/" > docs/assets/js/copyright.js
@cat docs/assets/js/copyright.js docs/assets/js/bootstrap.min.tmp.js > docs/assets/js/bootstrap.min.js @cat docs/assets/js/copyright.js docs/assets/js/bootstrap.min.tmp.js > docs/assets/js/bootstrap.min.js
@rm docs/assets/js/copyright.js docs/assets/js/bootstrap.min.tmp.js @rm docs/assets/js/copyright.js docs/assets/js/bootstrap.min.tmp.js
@echo "Compiling and minifying javascript... ${CHECK} Done" @echo "Compiling and minifying javascript... ${CHECK} Done"
@@ -43,8 +43,8 @@ build:
# #
test: test:
jshint js/*.js --config js/.jshintrc ./node_modules/.bin/jshint js/*.js --config js/.jshintrc
jshint js/tests/unit/*.js --config js/.jshintrc ./node_modules/.bin/jshint js/tests/unit/*.js --config js/.jshintrc
node js/tests/server.js & node js/tests/server.js &
phantomjs js/tests/phantom.js "http://localhost:3000/js/tests" phantomjs js/tests/phantom.js "http://localhost:3000/js/tests"
kill -9 `cat js/tests/pid.txt` kill -9 `cat js/tests/pid.txt`
@@ -62,21 +62,46 @@ clean:
# recess & uglifyjs are required # recess & uglifyjs are required
# #
bootstrap: bootstrap: bootstrap-img bootstrap-css bootstrap-js
mkdir -p bootstrap/img
mkdir -p bootstrap/css
#
# JS COMPILE
#
bootstrap-js: bootstrap/js/*.js
bootstrap/js/*.js: js/*.js
mkdir -p bootstrap/js mkdir -p bootstrap/js
cp img/* bootstrap/img/
recess --compile ${BOOTSTRAP_LESS} > bootstrap/css/bootstrap.css
recess --compress ${BOOTSTRAP_LESS} > bootstrap/css/bootstrap.min.css
recess --compile ${BOOTSTRAP_RESPONSIVE_LESS} > bootstrap/css/bootstrap-responsive.css
recess --compress ${BOOTSTRAP_RESPONSIVE_LESS} > bootstrap/css/bootstrap-responsive.min.css
cat js/bootstrap-transition.js js/bootstrap-alert.js js/bootstrap-button.js js/bootstrap-carousel.js js/bootstrap-collapse.js js/bootstrap-dropdown.js js/bootstrap-modal.js js/bootstrap-tooltip.js js/bootstrap-popover.js js/bootstrap-scrollspy.js js/bootstrap-tab.js js/bootstrap-typeahead.js js/bootstrap-affix.js > bootstrap/js/bootstrap.js cat js/bootstrap-transition.js js/bootstrap-alert.js js/bootstrap-button.js js/bootstrap-carousel.js js/bootstrap-collapse.js js/bootstrap-dropdown.js js/bootstrap-modal.js js/bootstrap-tooltip.js js/bootstrap-popover.js js/bootstrap-scrollspy.js js/bootstrap-tab.js js/bootstrap-typeahead.js js/bootstrap-affix.js > bootstrap/js/bootstrap.js
uglifyjs bootstrap/js/bootstrap.js -nc > bootstrap/js/bootstrap.min.tmp.js ./node_modules/.bin/uglifyjs -nc bootstrap/js/bootstrap.js > bootstrap/js/bootstrap.min.tmp.js
echo "/*!\n* Bootstrap.js by @fat & @mdo\n* Copyright 2012 Twitter, Inc.\n* http://www.apache.org/licenses/LICENSE-2.0.txt\n*/" > bootstrap/js/copyright.js echo "/*!\n* Bootstrap.js by @fat & @mdo\n* Copyright 2012 Twitter, Inc.\n* http://www.apache.org/licenses/LICENSE-2.0.txt\n*/" > bootstrap/js/copyright.js
cat bootstrap/js/copyright.js bootstrap/js/bootstrap.min.tmp.js > bootstrap/js/bootstrap.min.js cat bootstrap/js/copyright.js bootstrap/js/bootstrap.min.tmp.js > bootstrap/js/bootstrap.min.js
rm bootstrap/js/copyright.js bootstrap/js/bootstrap.min.tmp.js rm bootstrap/js/copyright.js bootstrap/js/bootstrap.min.tmp.js
#
# CSS COMPLILE
#
bootstrap-css: bootstrap/css/*.css
bootstrap/css/*.css: less/*.less
mkdir -p bootstrap/css
./node_modules/.bin/recess --compile ${BOOTSTRAP_LESS} > bootstrap/css/bootstrap.css
./node_modules/.bin/recess --compress ${BOOTSTRAP_LESS} > bootstrap/css/bootstrap.min.css
./node_modules/.bin/recess --compile ${BOOTSTRAP_RESPONSIVE_LESS} > bootstrap/css/bootstrap-responsive.css
./node_modules/.bin/recess --compress ${BOOTSTRAP_RESPONSIVE_LESS} > bootstrap/css/bootstrap-responsive.min.css
#
# IMAGES
#
bootstrap-img: bootstrap/img/*
bootstrap/img/*: img/*
mkdir -p bootstrap/img
cp img/* bootstrap/img/
# #
# MAKE FOR GH-PAGES 4 FAT & MDO ONLY (O_O ) # MAKE FOR GH-PAGES 4 FAT & MDO ONLY (O_O )
# #
@@ -98,4 +123,4 @@ watch:
watchr -e "watch('less/.*\.less') { system 'make' }" watchr -e "watch('less/.*\.less') { system 'make' }"
.PHONY: docs watch gh-pages .PHONY: docs watch gh-pages bootstrap-img bootstrap-css bootstrap-js
+12 -8
View File
@@ -1,8 +1,12 @@
# [Twitter Bootstrap v2.2.2](http://twitter.github.com/bootstrap) [![Build Status](https://secure.travis-ci.org/twitter/bootstrap.png)](http://travis-ci.org/twitter/bootstrap) <a href="http://getbootstrap.com">
<img src="http://twitter.github.com/bootstrap/assets/img/bootstrap-docs-readme.png" width="100px">
</a>
# [Bootstrap v2.3.0](http://twitter.github.com/bootstrap) [![Build Status](https://secure.travis-ci.org/twitter/bootstrap.png)](http://travis-ci.org/twitter/bootstrap)
Bootstrap is a sleek, intuitive, and powerful front-end framework for faster and easier web development, created and maintained by [Mark Otto](http://twitter.com/mdo) and [Jacob Thornton](http://twitter.com/fat). Bootstrap is a sleek, intuitive, and powerful front-end framework for faster and easier web development, created and maintained by [Mark Otto](http://twitter.com/mdo) and [Jacob Thornton](http://twitter.com/fat).
To get started, checkout http://getbootstrap.com! To get started, checkout [http://getbootstrap.com](http://getbootstrap.com)!
@@ -30,7 +34,7 @@ And constructed with the following guidelines:
* New additions without breaking backward compatibility bumps the minor (and resets the patch) * New additions without breaking backward compatibility bumps the minor (and resets the patch)
* Bug fixes and misc changes bumps the patch * Bug fixes and misc changes bumps the patch
For more information on SemVer, please visit http://semver.org/. For more information on SemVer, please visit [http://semver.org/](http://semver.org/).
@@ -85,13 +89,13 @@ Thanks!
**Mark Otto** **Mark Otto**
+ http://twitter.com/mdo + [http://twitter.com/mdo](http://twitter.com/mdo)
+ http://github.com/mdo + [http://github.com/mdo](http://github.com/mdo)
**Jacob Thornton** **Jacob Thornton**
+ http://twitter.com/fat + [http://twitter.com/fat](http://twitter.com/fat)
+ http://github.com/fat + [http://github.com/fat](http://github.com/fat)
@@ -103,7 +107,7 @@ Licensed under the Apache License, Version 2.0 (the "License");
you may not use this work except in compliance with the License. you may not use this work except in compliance with the License.
You may obtain a copy of the License in the LICENSE file, or at: You may obtain a copy of the License in the LICENSE file, or at:
http://www.apache.org/licenses/LICENSE-2.0 [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0)
Unless required by applicable law or agreed to in writing, software Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS, distributed under the License is distributed on an "AS IS" BASIS,
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "bootstrap", "name": "bootstrap",
"version": "2.2.2", "version": "2.3.0",
"main": ["./docs/assets/js/bootstrap.js", "./docs/assets/css/bootstrap.css"], "main": ["./docs/assets/js/bootstrap.js", "./docs/assets/css/bootstrap.css"],
"dependencies": { "dependencies": {
"jquery": "~1.8.0" "jquery": "~1.8.0"
+5 -5
View File
@@ -1,5 +1,5 @@
/*! /*!
* Bootstrap Responsive v2.2.2 * Bootstrap Responsive v2.3.0
* *
* Copyright 2012 Twitter, Inc * Copyright 2012 Twitter, Inc
* Licensed under the Apache License v2.0 * Licensed under the Apache License v2.0
@@ -8,10 +8,6 @@
* Designed and built with all the love in the world @twitter by @mdo and @fat. * Designed and built with all the love in the world @twitter by @mdo and @fat.
*/ */
@-ms-viewport {
width: device-width;
}
.clearfix { .clearfix {
*zoom: 1; *zoom: 1;
} }
@@ -44,6 +40,10 @@
box-sizing: border-box; box-sizing: border-box;
} }
@-ms-viewport {
width: device-width;
}
.hidden { .hidden {
display: none; display: none;
visibility: hidden; visibility: hidden;
+83 -48
View File
@@ -1,5 +1,5 @@
/*! /*!
* Bootstrap v2.2.2 * Bootstrap v2.3.0
* *
* Copyright 2012 Twitter, Inc * Copyright 2012 Twitter, Inc
* Licensed under the Apache License v2.0 * Licensed under the Apache License v2.0
@@ -8,6 +8,38 @@
* Designed and built with all the love in the world @twitter by @mdo and @fat. * Designed and built with all the love in the world @twitter by @mdo and @fat.
*/ */
.clearfix {
*zoom: 1;
}
.clearfix:before,
.clearfix:after {
display: table;
line-height: 0;
content: "";
}
.clearfix:after {
clear: both;
}
.hide-text {
font: 0/0 a;
color: transparent;
text-shadow: none;
background-color: transparent;
border: 0;
}
.input-block-level {
display: block;
width: 100%;
min-height: 30px;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
article, article,
aside, aside,
details, details,
@@ -189,38 +221,6 @@ textarea {
} }
} }
.clearfix {
*zoom: 1;
}
.clearfix:before,
.clearfix:after {
display: table;
line-height: 0;
content: "";
}
.clearfix:after {
clear: both;
}
.hide-text {
font: 0/0 a;
color: transparent;
text-shadow: none;
background-color: transparent;
border: 0;
}
.input-block-level {
display: block;
width: 100%;
min-height: 30px;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
body { body {
margin: 0; margin: 0;
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
@@ -1658,7 +1658,9 @@ select:focus:invalid:focus {
.input-append .uneditable-input, .input-append .uneditable-input,
.input-prepend .uneditable-input, .input-prepend .uneditable-input,
.input-append .dropdown-menu, .input-append .dropdown-menu,
.input-prepend .dropdown-menu { .input-prepend .dropdown-menu,
.input-append .popover,
.input-prepend .popover {
font-size: 14px; font-size: 14px;
} }
@@ -2909,7 +2911,7 @@ table th[class*="span"],
border-bottom: 1px solid #ffffff; border-bottom: 1px solid #ffffff;
} }
.dropdown-menu li > a { .dropdown-menu > li > a {
display: block; display: block;
padding: 3px 20px; padding: 3px 20px;
clear: both; clear: both;
@@ -2919,8 +2921,8 @@ table th[class*="span"],
white-space: nowrap; white-space: nowrap;
} }
.dropdown-menu li > a:hover, .dropdown-menu > li > a:hover,
.dropdown-menu li > a:focus, .dropdown-menu > li > a:focus,
.dropdown-submenu:hover > a { .dropdown-submenu:hover > a {
color: #ffffff; color: #ffffff;
text-decoration: none; text-decoration: none;
@@ -2934,8 +2936,8 @@ table th[class*="span"],
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0);
} }
.dropdown-menu .active > a, .dropdown-menu > .active > a,
.dropdown-menu .active > a:hover { .dropdown-menu > .active > a:hover {
color: #ffffff; color: #ffffff;
text-decoration: none; text-decoration: none;
background-color: #0081c2; background-color: #0081c2;
@@ -2949,12 +2951,12 @@ table th[class*="span"],
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0);
} }
.dropdown-menu .disabled > a, .dropdown-menu > .disabled > a,
.dropdown-menu .disabled > a:hover { .dropdown-menu > .disabled > a:hover {
color: #999999; color: #999999;
} }
.dropdown-menu .disabled > a:hover { .dropdown-menu > .disabled > a:hover {
text-decoration: none; text-decoration: none;
cursor: default; cursor: default;
background-color: transparent; background-color: transparent;
@@ -3744,8 +3746,6 @@ input[type="submit"].btn.btn-mini {
margin-left: 0; margin-left: 0;
} }
.btn-mini .caret,
.btn-small .caret,
.btn-large .caret { .btn-large .caret {
margin-top: 6px; margin-top: 6px;
} }
@@ -3756,6 +3756,11 @@ input[type="submit"].btn.btn-mini {
border-left-width: 5px; border-left-width: 5px;
} }
.btn-mini .caret,
.btn-small .caret {
margin-top: 8px;
}
.dropup .btn-large .caret { .dropup .btn-large .caret {
border-bottom-width: 5px; border-bottom-width: 5px;
} }
@@ -5211,6 +5216,7 @@ input[type="submit"].btn.btn-mini {
display: block; display: block;
padding: 5px; padding: 5px;
font-size: 11px; font-size: 11px;
line-height: 1.4;
opacity: 0; opacity: 0;
filter: alpha(opacity=0); filter: alpha(opacity=0);
visibility: visible; visibility: visible;
@@ -5239,7 +5245,7 @@ input[type="submit"].btn.btn-mini {
.tooltip-inner { .tooltip-inner {
max-width: 200px; max-width: 200px;
padding: 3px 8px; padding: 8px;
color: #ffffff; color: #ffffff;
text-align: center; text-align: center;
text-decoration: none; text-decoration: none;
@@ -5295,7 +5301,7 @@ input[type="submit"].btn.btn-mini {
left: 0; left: 0;
z-index: 1010; z-index: 1010;
display: none; display: none;
width: 236px; max-width: 276px;
padding: 1px; padding: 1px;
text-align: left; text-align: left;
white-space: normal; white-space: normal;
@@ -5342,6 +5348,10 @@ input[type="submit"].btn.btn-mini {
border-radius: 5px 5px 0 0; border-radius: 5px 5px 0 0;
} }
.popover-title:empty {
display: none;
}
.popover-content { .popover-content {
padding: 9px 14px; padding: 9px 14px;
} }
@@ -5516,11 +5526,11 @@ a.thumbnail:hover {
margin: 0 0 5px; margin: 0 0 5px;
} }
.media .pull-left { .media > .pull-left {
margin-right: 10px; margin-right: 10px;
} }
.media .pull-right { .media > .pull-right {
margin-left: 10px; margin-left: 10px;
} }
@@ -5965,6 +5975,31 @@ a.badge:hover {
filter: alpha(opacity=90); filter: alpha(opacity=90);
} }
.carousel-indicators {
position: absolute;
top: 15px;
right: 15px;
z-index: 5;
margin: 0;
list-style: none;
}
.carousel-indicators li {
display: block;
float: left;
width: 10px;
height: 10px;
margin-left: 5px;
text-indent: -999px;
background-color: #ccc;
background-color: rgba(255, 255, 255, 0.25);
border-radius: 5px;
}
.carousel-indicators .active {
background-color: #fff;
}
.carousel-caption { .carousel-caption {
position: absolute; position: absolute;
right: 0; right: 0;
+3
View File
@@ -552,6 +552,9 @@ h2 + .row {
/* Example page /* Example page
------------------------- */ ------------------------- */
.bootstrap-examples h4 {
margin: 10px 0 5px;
}
.bootstrap-examples p { .bootstrap-examples p {
font-size: 13px; font-size: 13px;
line-height: 18px; line-height: 18px;
Binary file not shown.

Before

Width:  |  Height:  |  Size: 221 KiB

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 53 KiB

After

Width:  |  Height:  |  Size: 332 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 204 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 133 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 115 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 131 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.5 KiB

After

Width:  |  Height:  |  Size: 30 KiB

+12 -10
View File
@@ -14,12 +14,14 @@
}) })
// side bar // side bar
$('.bs-docs-sidenav').affix({ setTimeout(function () {
offset: { $('.bs-docs-sidenav').affix({
top: function () { return $window.width() <= 980 ? 290 : 210 } offset: {
, bottom: 270 top: function () { return $window.width() <= 980 ? 290 : 210 }
} , bottom: 270
}) }
})
}, 100)
// make code pretty // make code pretty
window.prettyPrint && prettyPrint() window.prettyPrint && prettyPrint()
@@ -34,21 +36,21 @@
// add tipsies to grid for scaffolding // add tipsies to grid for scaffolding
if ($('#gridSystem').length) { if ($('#gridSystem').length) {
$('#gridSystem').tooltip({ $('#gridSystem').tooltip({
selector: '.show-grid > div' selector: '.show-grid > div:not(.tooltip)'
, title: function () { return $(this).width() + 'px' } , title: function () { return $(this).width() + 'px' }
}) })
} }
// tooltip demo // tooltip demo
$('.tooltip-demo').tooltip({ $('.tooltip-demo').tooltip({
selector: "a[rel=tooltip]" selector: "a[data-toggle=tooltip]"
}) })
$('.tooltip-test').tooltip() $('.tooltip-test').tooltip()
$('.popover-test').popover() $('.popover-test').popover()
// popover demo // popover demo
$("a[rel=popover]") $("a[data-toggle=popover]")
.popover() .popover()
.click(function(e) { .click(function(e) {
e.preventDefault() e.preventDefault()
@@ -151,4 +153,4 @@ $.ajaxTransport('jsonpi', function(opts, originalOptions, jqXHR) {
} }
}) })
}(window.jQuery) }(window.jQuery)
+1 -1
View File
@@ -1,5 +1,5 @@
/* ========================================================== /* ==========================================================
* bootstrap-affix.js v2.2.2 * bootstrap-affix.js v2.3.0
* http://twitter.github.com/bootstrap/javascript.html#affix * http://twitter.github.com/bootstrap/javascript.html#affix
* ========================================================== * ==========================================================
* Copyright 2012 Twitter, Inc. * Copyright 2012 Twitter, Inc.
+1 -1
View File
@@ -1,5 +1,5 @@
/* ========================================================== /* ==========================================================
* bootstrap-alert.js v2.2.2 * bootstrap-alert.js v2.3.0
* http://twitter.github.com/bootstrap/javascript.html#alerts * http://twitter.github.com/bootstrap/javascript.html#alerts
* ========================================================== * ==========================================================
* Copyright 2012 Twitter, Inc. * Copyright 2012 Twitter, Inc.
+1 -1
View File
@@ -1,5 +1,5 @@
/* ============================================================ /* ============================================================
* bootstrap-button.js v2.2.2 * bootstrap-button.js v2.3.0
* http://twitter.github.com/bootstrap/javascript.html#buttons * http://twitter.github.com/bootstrap/javascript.html#buttons
* ============================================================ * ============================================================
* Copyright 2012 Twitter, Inc. * Copyright 2012 Twitter, Inc.
+30 -9
View File
@@ -1,5 +1,5 @@
/* ========================================================== /* ==========================================================
* bootstrap-carousel.js v2.2.2 * bootstrap-carousel.js v2.3.0
* http://twitter.github.com/bootstrap/javascript.html#carousel * http://twitter.github.com/bootstrap/javascript.html#carousel
* ========================================================== * ==========================================================
* Copyright 2012 Twitter, Inc. * Copyright 2012 Twitter, Inc.
@@ -28,6 +28,7 @@
var Carousel = function (element, options) { var Carousel = function (element, options) {
this.$element = $(element) this.$element = $(element)
this.$indicators = this.$element.find('.carousel-indicators')
this.options = options this.options = options
this.options.pause == 'hover' && this.$element this.options.pause == 'hover' && this.$element
.on('mouseenter', $.proxy(this.pause, this)) .on('mouseenter', $.proxy(this.pause, this))
@@ -44,13 +45,17 @@
return this return this
} }
, getActiveIndex: function () {
this.$active = this.$element.find('.item.active')
this.$items = this.$active.parent().children()
return this.$items.index(this.$active)
}
, to: function (pos) { , to: function (pos) {
var $active = this.$element.find('.item.active') var activeIndex = this.getActiveIndex()
, children = $active.parent().children()
, activePos = children.index($active)
, that = this , that = this
if (pos > (children.length - 1) || pos < 0) return if (pos > (this.$items.length - 1) || pos < 0) return
if (this.sliding) { if (this.sliding) {
return this.$element.one('slid', function () { return this.$element.one('slid', function () {
@@ -58,11 +63,11 @@
}) })
} }
if (activePos == pos) { if (activeIndex == pos) {
return this.pause().cycle() return this.pause().cycle()
} }
return this.slide(pos > activePos ? 'next' : 'prev', $(children[pos])) return this.slide(pos > activeIndex ? 'next' : 'prev', $(this.$items[pos]))
} }
, pause: function (e) { , pause: function (e) {
@@ -103,10 +108,19 @@
e = $.Event('slide', { e = $.Event('slide', {
relatedTarget: $next[0] relatedTarget: $next[0]
, direction: direction
}) })
if ($next.hasClass('active')) return if ($next.hasClass('active')) return
if (this.$indicators.length) {
this.$indicators.find('.active').removeClass('active')
this.$element.one('slid', function () {
var $nextIndicator = $(that.$indicators.children()[that.getActiveIndex()])
$nextIndicator && $nextIndicator.addClass('active')
})
}
if ($.support.transition && this.$element.hasClass('slide')) { if ($.support.transition && this.$element.hasClass('slide')) {
this.$element.trigger(e) this.$element.trigger(e)
if (e.isDefaultPrevented()) return if (e.isDefaultPrevented()) return
@@ -151,7 +165,7 @@
if (!data) $this.data('carousel', (data = new Carousel(this, options))) if (!data) $this.data('carousel', (data = new Carousel(this, options)))
if (typeof option == 'number') data.to(option) if (typeof option == 'number') data.to(option)
else if (action) data[action]() else if (action) data[action]()
else if (options.interval) data.cycle() else if (options.interval) data.pause().cycle()
}) })
} }
@@ -174,11 +188,18 @@
/* CAROUSEL DATA-API /* CAROUSEL DATA-API
* ================= */ * ================= */
$(document).on('click.carousel.data-api', '[data-slide]', function (e) { $(document).on('click.carousel.data-api', '[data-slide], [data-slide-to]', function (e) {
var $this = $(this), href var $this = $(this), href
, $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7 , $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7
, options = $.extend({}, $target.data(), $this.data()) , options = $.extend({}, $target.data(), $this.data())
, slideIndex
$target.carousel(options) $target.carousel(options)
if (slideIndex = $this.attr('data-slide-to')) {
$target.data('carousel').pause().to(slideIndex).cycle()
}
e.preventDefault() e.preventDefault()
}) })
+3 -3
View File
@@ -1,5 +1,5 @@
/* ============================================================= /* =============================================================
* bootstrap-collapse.js v2.2.2 * bootstrap-collapse.js v2.3.0
* http://twitter.github.com/bootstrap/javascript.html#collapse * http://twitter.github.com/bootstrap/javascript.html#collapse
* ============================================================= * =============================================================
* Copyright 2012 Twitter, Inc. * Copyright 2012 Twitter, Inc.
@@ -52,7 +52,7 @@
, actives , actives
, hasData , hasData
if (this.transitioning) return if (this.transitioning || this.$element.hasClass('in')) return
dimension = this.dimension() dimension = this.dimension()
scroll = $.camelCase(['scroll', dimension].join('-')) scroll = $.camelCase(['scroll', dimension].join('-'))
@@ -129,7 +129,7 @@
return this.each(function () { return this.each(function () {
var $this = $(this) var $this = $(this)
, data = $this.data('collapse') , data = $this.data('collapse')
, options = typeof option == 'object' && option , options = $.extend({}, $.fn.collapse.defaults, $this.data(), typeof option == 'object' && option)
if (!data) $this.data('collapse', (data = new Collapse(this, options))) if (!data) $this.data('collapse', (data = new Collapse(this, options)))
if (typeof option == 'string') data[option]() if (typeof option == 'string') data[option]()
}) })
+9 -5
View File
@@ -1,5 +1,5 @@
/* ============================================================ /* ============================================================
* bootstrap-dropdown.js v2.2.2 * bootstrap-dropdown.js v2.3.0
* http://twitter.github.com/bootstrap/javascript.html#dropdowns * http://twitter.github.com/bootstrap/javascript.html#dropdowns
* ============================================================ * ============================================================
* Copyright 2012 Twitter, Inc. * Copyright 2012 Twitter, Inc.
@@ -81,7 +81,10 @@
isActive = $parent.hasClass('open') isActive = $parent.hasClass('open')
if (!isActive || (isActive && e.keyCode == 27)) return $this.click() if (!isActive || (isActive && e.keyCode == 27)) {
if (e.which == 27) $parent.find(toggle).focus()
return $this.click()
}
$items = $('[role=menu] li:not(.divider):visible a', $parent) $items = $('[role=menu] li:not(.divider):visible a', $parent)
@@ -115,8 +118,9 @@
selector = selector && /#/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7 selector = selector && /#/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
} }
$parent = $(selector) $parent = selector && $(selector)
$parent.length || ($parent = $this.parent())
if (!$parent || !$parent.length) $parent = $this.parent()
return $parent return $parent
} }
@@ -153,7 +157,7 @@
$(document) $(document)
.on('click.dropdown.data-api touchstart.dropdown.data-api', clearMenus) .on('click.dropdown.data-api touchstart.dropdown.data-api', clearMenus)
.on('click.dropdown touchstart.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() }) .on('click.dropdown.data-api touchstart.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })
.on('touchstart.dropdown.data-api', '.dropdown-menu', function (e) { e.stopPropagation() }) .on('touchstart.dropdown.data-api', '.dropdown-menu', function (e) { e.stopPropagation() })
.on('click.dropdown.data-api touchstart.dropdown.data-api' , toggle, Dropdown.prototype.toggle) .on('click.dropdown.data-api touchstart.dropdown.data-api' , toggle, Dropdown.prototype.toggle)
.on('keydown.dropdown.data-api touchstart.dropdown.data-api', toggle + ', [role=menu]' , Dropdown.prototype.keydown) .on('keydown.dropdown.data-api touchstart.dropdown.data-api', toggle + ', [role=menu]' , Dropdown.prototype.keydown)
+2 -3
View File
@@ -1,5 +1,5 @@
/* ========================================================= /* =========================================================
* bootstrap-modal.js v2.2.2 * bootstrap-modal.js v2.3.0
* http://twitter.github.com/bootstrap/javascript.html#modals * http://twitter.github.com/bootstrap/javascript.html#modals
* ========================================================= * =========================================================
* Copyright 2012 Twitter, Inc. * Copyright 2012 Twitter, Inc.
@@ -60,8 +60,7 @@
that.$element.appendTo(document.body) //don't move modals dom position that.$element.appendTo(document.body) //don't move modals dom position
} }
that.$element that.$element.show()
.show()
if (transition) { if (transition) {
that.$element[0].offsetWidth // force reflow that.$element[0].offsetWidth // force reflow
+1 -1
View File
@@ -1,5 +1,5 @@
/* =========================================================== /* ===========================================================
* bootstrap-popover.js v2.2.2 * bootstrap-popover.js v2.3.0
* http://twitter.github.com/bootstrap/javascript.html#popovers * http://twitter.github.com/bootstrap/javascript.html#popovers
* =========================================================== * ===========================================================
* Copyright 2012 Twitter, Inc. * Copyright 2012 Twitter, Inc.
+2 -2
View File
@@ -1,5 +1,5 @@
/* ============================================================= /* =============================================================
* bootstrap-scrollspy.js v2.2.2 * bootstrap-scrollspy.js v2.3.0
* http://twitter.github.com/bootstrap/javascript.html#scrollspy * http://twitter.github.com/bootstrap/javascript.html#scrollspy
* ============================================================= * =============================================================
* Copyright 2012 Twitter, Inc. * Copyright 2012 Twitter, Inc.
@@ -59,7 +59,7 @@
, $href = /^#\w/.test(href) && $(href) , $href = /^#\w/.test(href) && $(href)
return ( $href return ( $href
&& $href.length && $href.length
&& [[ $href.position().top + self.$scrollElement.scrollTop(), href ]] ) || null && [[ $href.position().top + (!$.isWindow(self.$scrollElement.get(0)) && self.$scrollElement.scrollTop()), href ]] ) || null
}) })
.sort(function (a, b) { return a[0] - b[0] }) .sort(function (a, b) { return a[0] - b[0] })
.each(function () { .each(function () {
+1 -1
View File
@@ -1,5 +1,5 @@
/* ======================================================== /* ========================================================
* bootstrap-tab.js v2.2.2 * bootstrap-tab.js v2.3.0
* http://twitter.github.com/bootstrap/javascript.html#tabs * http://twitter.github.com/bootstrap/javascript.html#tabs
* ======================================================== * ========================================================
* Copyright 2012 Twitter, Inc. * Copyright 2012 Twitter, Inc.
+42 -23
View File
@@ -1,5 +1,5 @@
/* =========================================================== /* ===========================================================
* bootstrap-tooltip.js v2.2.2 * bootstrap-tooltip.js v2.3.0
* http://twitter.github.com/bootstrap/javascript.html#tooltips * http://twitter.github.com/bootstrap/javascript.html#tooltips
* Inspired by the original jQuery.tipsy by Jason Frame * Inspired by the original jQuery.tipsy by Jason Frame
* =========================================================== * ===========================================================
@@ -38,19 +38,27 @@
, init: function (type, element, options) { , init: function (type, element, options) {
var eventIn var eventIn
, eventOut , eventOut
, triggers
, trigger
, i
this.type = type this.type = type
this.$element = $(element) this.$element = $(element)
this.options = this.getOptions(options) this.options = this.getOptions(options)
this.enabled = true this.enabled = true
if (this.options.trigger == 'click') { triggers = this.options.trigger.split(' ')
this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this))
} else if (this.options.trigger != 'manual') { for (i = triggers.length; i--;) {
eventIn = this.options.trigger == 'hover' ? 'mouseenter' : 'focus' trigger = triggers[i]
eventOut = this.options.trigger == 'hover' ? 'mouseleave' : 'blur' if (trigger == 'click') {
this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this)) this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this))
this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this)) } else if (trigger != 'manual') {
eventIn = trigger == 'hover' ? 'mouseenter' : 'focus'
eventOut = trigger == 'hover' ? 'mouseleave' : 'blur'
this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this))
this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this))
}
} }
this.options.selector ? this.options.selector ?
@@ -97,14 +105,16 @@
, show: function () { , show: function () {
var $tip var $tip
, inside
, pos , pos
, actualWidth , actualWidth
, actualHeight , actualHeight
, placement , placement
, tp , tp
, e = $.Event('show')
if (this.hasContent() && this.enabled) { if (this.hasContent() && this.enabled) {
this.$element.trigger(e)
if (e.isDefaultPrevented()) return
$tip = this.tip() $tip = this.tip()
this.setContent() this.setContent()
@@ -116,19 +126,18 @@
this.options.placement.call(this, $tip[0], this.$element[0]) : this.options.placement.call(this, $tip[0], this.$element[0]) :
this.options.placement this.options.placement
inside = /in/.test(placement)
$tip $tip
.detach() .detach()
.css({ top: 0, left: 0, display: 'block' }) .css({ top: 0, left: 0, display: 'block' })
.insertAfter(this.$element)
pos = this.getPosition(inside) this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element)
pos = this.getPosition()
actualWidth = $tip[0].offsetWidth actualWidth = $tip[0].offsetWidth
actualHeight = $tip[0].offsetHeight actualHeight = $tip[0].offsetHeight
switch (inside ? placement.split(' ')[1] : placement) { switch (placement) {
case 'bottom': case 'bottom':
tp = {top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2} tp = {top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2}
break break
@@ -147,6 +156,8 @@
.offset(tp) .offset(tp)
.addClass(placement) .addClass(placement)
.addClass('in') .addClass('in')
this.$element.trigger('shown')
} }
} }
@@ -161,6 +172,10 @@
, hide: function () { , hide: function () {
var that = this var that = this
, $tip = this.tip() , $tip = this.tip()
, e = $.Event('hide')
this.$element.trigger(e)
if (e.isDefaultPrevented()) return
$tip.removeClass('in') $tip.removeClass('in')
@@ -179,6 +194,8 @@
removeWithAnimation() : removeWithAnimation() :
$tip.detach() $tip.detach()
this.$element.trigger('hidden')
return this return this
} }
@@ -193,11 +210,12 @@
return this.getTitle() return this.getTitle()
} }
, getPosition: function (inside) { , getPosition: function () {
return $.extend({}, (inside ? {top: 0, left: 0} : this.$element.offset()), { var el = this.$element[0]
width: this.$element[0].offsetWidth return $.extend({}, el.getBoundingClientRect ? el.getBoundingClientRect() : {
, height: this.$element[0].offsetHeight width: el.offsetWidth
}) , height: el.offsetHeight
}, this.$element.offset())
} }
, getTitle: function () { , getTitle: function () {
@@ -236,8 +254,8 @@
} }
, toggle: function (e) { , toggle: function (e) {
var self = $(e.currentTarget)[this.type](this._options).data(this.type) var self = e ? $(e.currentTarget)[this.type](this._options).data(this.type) : this
self[self.tip().hasClass('in') ? 'hide' : 'show']() self.tip().hasClass('in') ? self.hide() : self.show()
} }
, destroy: function () { , destroy: function () {
@@ -269,10 +287,11 @@
, placement: 'top' , placement: 'top'
, selector: false , selector: false
, template: '<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>' , template: '<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>'
, trigger: 'hover' , trigger: 'hover focus'
, title: '' , title: ''
, delay: 0 , delay: 0
, html: false , html: false
, container: false
} }
@@ -284,4 +303,4 @@
return this return this
} }
}(window.jQuery); }(window.jQuery);
+1 -1
View File
@@ -1,5 +1,5 @@
/* =================================================== /* ===================================================
* bootstrap-transition.js v2.2.2 * bootstrap-transition.js v2.3.0
* http://twitter.github.com/bootstrap/javascript.html#transitions * http://twitter.github.com/bootstrap/javascript.html#transitions
* =================================================== * ===================================================
* Copyright 2012 Twitter, Inc. * Copyright 2012 Twitter, Inc.
+16 -3
View File
@@ -1,5 +1,5 @@
/* ============================================================= /* =============================================================
* bootstrap-typeahead.js v2.2.2 * bootstrap-typeahead.js v2.3.0
* http://twitter.github.com/bootstrap/javascript.html#typeahead * http://twitter.github.com/bootstrap/javascript.html#typeahead
* ============================================================= * =============================================================
* Copyright 2012 Twitter, Inc. * Copyright 2012 Twitter, Inc.
@@ -172,6 +172,7 @@
, listen: function () { , listen: function () {
this.$element this.$element
.on('focus', $.proxy(this.focus, this))
.on('blur', $.proxy(this.blur, this)) .on('blur', $.proxy(this.blur, this))
.on('keypress', $.proxy(this.keypress, this)) .on('keypress', $.proxy(this.keypress, this))
.on('keyup', $.proxy(this.keyup, this)) .on('keyup', $.proxy(this.keyup, this))
@@ -183,6 +184,7 @@
this.$menu this.$menu
.on('click', $.proxy(this.click, this)) .on('click', $.proxy(this.click, this))
.on('mouseenter', 'li', $.proxy(this.mouseenter, this)) .on('mouseenter', 'li', $.proxy(this.mouseenter, this))
.on('mouseleave', 'li', $.proxy(this.mouseleave, this))
} }
, eventSupported: function(eventName) { , eventSupported: function(eventName) {
@@ -256,22 +258,33 @@
e.preventDefault() e.preventDefault()
} }
, focus: function (e) {
this.focused = true
}
, blur: function (e) { , blur: function (e) {
var that = this this.focused = false
setTimeout(function () { that.hide() }, 150) if (!this.mousedover && this.shown) this.hide()
} }
, click: function (e) { , click: function (e) {
e.stopPropagation() e.stopPropagation()
e.preventDefault() e.preventDefault()
this.select() this.select()
this.$element.focus()
} }
, mouseenter: function (e) { , mouseenter: function (e) {
this.mousedover = true
this.$menu.find('.active').removeClass('active') this.$menu.find('.active').removeClass('active')
$(e.currentTarget).addClass('active') $(e.currentTarget).addClass('active')
} }
, mouseleave: function (e) {
this.mousedover = false
if (!this.focused && this.shown) this.hide()
}
} }
+111 -54
View File
@@ -1,5 +1,5 @@
/* =================================================== /* ===================================================
* bootstrap-transition.js v2.2.2 * bootstrap-transition.js v2.3.0
* http://twitter.github.com/bootstrap/javascript.html#transitions * http://twitter.github.com/bootstrap/javascript.html#transitions
* =================================================== * ===================================================
* Copyright 2012 Twitter, Inc. * Copyright 2012 Twitter, Inc.
@@ -58,7 +58,7 @@
}) })
}(window.jQuery);/* ========================================================== }(window.jQuery);/* ==========================================================
* bootstrap-alert.js v2.2.2 * bootstrap-alert.js v2.3.0
* http://twitter.github.com/bootstrap/javascript.html#alerts * http://twitter.github.com/bootstrap/javascript.html#alerts
* ========================================================== * ==========================================================
* Copyright 2012 Twitter, Inc. * Copyright 2012 Twitter, Inc.
@@ -156,7 +156,7 @@
$(document).on('click.alert.data-api', dismiss, Alert.prototype.close) $(document).on('click.alert.data-api', dismiss, Alert.prototype.close)
}(window.jQuery);/* ============================================================ }(window.jQuery);/* ============================================================
* bootstrap-button.js v2.2.2 * bootstrap-button.js v2.3.0
* http://twitter.github.com/bootstrap/javascript.html#buttons * http://twitter.github.com/bootstrap/javascript.html#buttons
* ============================================================ * ============================================================
* Copyright 2012 Twitter, Inc. * Copyright 2012 Twitter, Inc.
@@ -260,7 +260,7 @@
}) })
}(window.jQuery);/* ========================================================== }(window.jQuery);/* ==========================================================
* bootstrap-carousel.js v2.2.2 * bootstrap-carousel.js v2.3.0
* http://twitter.github.com/bootstrap/javascript.html#carousel * http://twitter.github.com/bootstrap/javascript.html#carousel
* ========================================================== * ==========================================================
* Copyright 2012 Twitter, Inc. * Copyright 2012 Twitter, Inc.
@@ -289,6 +289,7 @@
var Carousel = function (element, options) { var Carousel = function (element, options) {
this.$element = $(element) this.$element = $(element)
this.$indicators = this.$element.find('.carousel-indicators')
this.options = options this.options = options
this.options.pause == 'hover' && this.$element this.options.pause == 'hover' && this.$element
.on('mouseenter', $.proxy(this.pause, this)) .on('mouseenter', $.proxy(this.pause, this))
@@ -305,13 +306,17 @@
return this return this
} }
, getActiveIndex: function () {
this.$active = this.$element.find('.item.active')
this.$items = this.$active.parent().children()
return this.$items.index(this.$active)
}
, to: function (pos) { , to: function (pos) {
var $active = this.$element.find('.item.active') var activeIndex = this.getActiveIndex()
, children = $active.parent().children()
, activePos = children.index($active)
, that = this , that = this
if (pos > (children.length - 1) || pos < 0) return if (pos > (this.$items.length - 1) || pos < 0) return
if (this.sliding) { if (this.sliding) {
return this.$element.one('slid', function () { return this.$element.one('slid', function () {
@@ -319,11 +324,11 @@
}) })
} }
if (activePos == pos) { if (activeIndex == pos) {
return this.pause().cycle() return this.pause().cycle()
} }
return this.slide(pos > activePos ? 'next' : 'prev', $(children[pos])) return this.slide(pos > activeIndex ? 'next' : 'prev', $(this.$items[pos]))
} }
, pause: function (e) { , pause: function (e) {
@@ -364,10 +369,19 @@
e = $.Event('slide', { e = $.Event('slide', {
relatedTarget: $next[0] relatedTarget: $next[0]
, direction: direction
}) })
if ($next.hasClass('active')) return if ($next.hasClass('active')) return
if (this.$indicators.length) {
this.$indicators.find('.active').removeClass('active')
this.$element.one('slid', function () {
var $nextIndicator = $(that.$indicators.children()[that.getActiveIndex()])
$nextIndicator && $nextIndicator.addClass('active')
})
}
if ($.support.transition && this.$element.hasClass('slide')) { if ($.support.transition && this.$element.hasClass('slide')) {
this.$element.trigger(e) this.$element.trigger(e)
if (e.isDefaultPrevented()) return if (e.isDefaultPrevented()) return
@@ -412,7 +426,7 @@
if (!data) $this.data('carousel', (data = new Carousel(this, options))) if (!data) $this.data('carousel', (data = new Carousel(this, options)))
if (typeof option == 'number') data.to(option) if (typeof option == 'number') data.to(option)
else if (action) data[action]() else if (action) data[action]()
else if (options.interval) data.cycle() else if (options.interval) data.pause().cycle()
}) })
} }
@@ -435,16 +449,23 @@
/* CAROUSEL DATA-API /* CAROUSEL DATA-API
* ================= */ * ================= */
$(document).on('click.carousel.data-api', '[data-slide]', function (e) { $(document).on('click.carousel.data-api', '[data-slide], [data-slide-to]', function (e) {
var $this = $(this), href var $this = $(this), href
, $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7 , $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7
, options = $.extend({}, $target.data(), $this.data()) , options = $.extend({}, $target.data(), $this.data())
, slideIndex
$target.carousel(options) $target.carousel(options)
if (slideIndex = $this.attr('data-slide-to')) {
$target.data('carousel').pause().to(slideIndex).cycle()
}
e.preventDefault() e.preventDefault()
}) })
}(window.jQuery);/* ============================================================= }(window.jQuery);/* =============================================================
* bootstrap-collapse.js v2.2.2 * bootstrap-collapse.js v2.3.0
* http://twitter.github.com/bootstrap/javascript.html#collapse * http://twitter.github.com/bootstrap/javascript.html#collapse
* ============================================================= * =============================================================
* Copyright 2012 Twitter, Inc. * Copyright 2012 Twitter, Inc.
@@ -497,7 +518,7 @@
, actives , actives
, hasData , hasData
if (this.transitioning) return if (this.transitioning || this.$element.hasClass('in')) return
dimension = this.dimension() dimension = this.dimension()
scroll = $.camelCase(['scroll', dimension].join('-')) scroll = $.camelCase(['scroll', dimension].join('-'))
@@ -574,7 +595,7 @@
return this.each(function () { return this.each(function () {
var $this = $(this) var $this = $(this)
, data = $this.data('collapse') , data = $this.data('collapse')
, options = typeof option == 'object' && option , options = $.extend({}, $.fn.collapse.defaults, $this.data(), typeof option == 'object' && option)
if (!data) $this.data('collapse', (data = new Collapse(this, options))) if (!data) $this.data('collapse', (data = new Collapse(this, options)))
if (typeof option == 'string') data[option]() if (typeof option == 'string') data[option]()
}) })
@@ -610,7 +631,7 @@
}) })
}(window.jQuery);/* ============================================================ }(window.jQuery);/* ============================================================
* bootstrap-dropdown.js v2.2.2 * bootstrap-dropdown.js v2.3.0
* http://twitter.github.com/bootstrap/javascript.html#dropdowns * http://twitter.github.com/bootstrap/javascript.html#dropdowns
* ============================================================ * ============================================================
* Copyright 2012 Twitter, Inc. * Copyright 2012 Twitter, Inc.
@@ -692,7 +713,10 @@
isActive = $parent.hasClass('open') isActive = $parent.hasClass('open')
if (!isActive || (isActive && e.keyCode == 27)) return $this.click() if (!isActive || (isActive && e.keyCode == 27)) {
if (e.which == 27) $parent.find(toggle).focus()
return $this.click()
}
$items = $('[role=menu] li:not(.divider):visible a', $parent) $items = $('[role=menu] li:not(.divider):visible a', $parent)
@@ -726,8 +750,9 @@
selector = selector && /#/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7 selector = selector && /#/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
} }
$parent = $(selector) $parent = selector && $(selector)
$parent.length || ($parent = $this.parent())
if (!$parent || !$parent.length) $parent = $this.parent()
return $parent return $parent
} }
@@ -764,13 +789,13 @@
$(document) $(document)
.on('click.dropdown.data-api touchstart.dropdown.data-api', clearMenus) .on('click.dropdown.data-api touchstart.dropdown.data-api', clearMenus)
.on('click.dropdown touchstart.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() }) .on('click.dropdown.data-api touchstart.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })
.on('touchstart.dropdown.data-api', '.dropdown-menu', function (e) { e.stopPropagation() }) .on('touchstart.dropdown.data-api', '.dropdown-menu', function (e) { e.stopPropagation() })
.on('click.dropdown.data-api touchstart.dropdown.data-api' , toggle, Dropdown.prototype.toggle) .on('click.dropdown.data-api touchstart.dropdown.data-api' , toggle, Dropdown.prototype.toggle)
.on('keydown.dropdown.data-api touchstart.dropdown.data-api', toggle + ', [role=menu]' , Dropdown.prototype.keydown) .on('keydown.dropdown.data-api touchstart.dropdown.data-api', toggle + ', [role=menu]' , Dropdown.prototype.keydown)
}(window.jQuery);/* ========================================================= }(window.jQuery);/* =========================================================
* bootstrap-modal.js v2.2.2 * bootstrap-modal.js v2.3.0
* http://twitter.github.com/bootstrap/javascript.html#modals * http://twitter.github.com/bootstrap/javascript.html#modals
* ========================================================= * =========================================================
* Copyright 2012 Twitter, Inc. * Copyright 2012 Twitter, Inc.
@@ -831,8 +856,7 @@
that.$element.appendTo(document.body) //don't move modals dom position that.$element.appendTo(document.body) //don't move modals dom position
} }
that.$element that.$element.show()
.show()
if (transition) { if (transition) {
that.$element[0].offsetWidth // force reflow that.$element[0].offsetWidth // force reflow
@@ -1015,7 +1039,7 @@
}(window.jQuery); }(window.jQuery);
/* =========================================================== /* ===========================================================
* bootstrap-tooltip.js v2.2.2 * bootstrap-tooltip.js v2.3.0
* http://twitter.github.com/bootstrap/javascript.html#tooltips * http://twitter.github.com/bootstrap/javascript.html#tooltips
* Inspired by the original jQuery.tipsy by Jason Frame * Inspired by the original jQuery.tipsy by Jason Frame
* =========================================================== * ===========================================================
@@ -1054,19 +1078,27 @@
, init: function (type, element, options) { , init: function (type, element, options) {
var eventIn var eventIn
, eventOut , eventOut
, triggers
, trigger
, i
this.type = type this.type = type
this.$element = $(element) this.$element = $(element)
this.options = this.getOptions(options) this.options = this.getOptions(options)
this.enabled = true this.enabled = true
if (this.options.trigger == 'click') { triggers = this.options.trigger.split(' ')
this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this))
} else if (this.options.trigger != 'manual') { for (i = triggers.length; i--;) {
eventIn = this.options.trigger == 'hover' ? 'mouseenter' : 'focus' trigger = triggers[i]
eventOut = this.options.trigger == 'hover' ? 'mouseleave' : 'blur' if (trigger == 'click') {
this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this)) this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this))
this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this)) } else if (trigger != 'manual') {
eventIn = trigger == 'hover' ? 'mouseenter' : 'focus'
eventOut = trigger == 'hover' ? 'mouseleave' : 'blur'
this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this))
this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this))
}
} }
this.options.selector ? this.options.selector ?
@@ -1113,14 +1145,16 @@
, show: function () { , show: function () {
var $tip var $tip
, inside
, pos , pos
, actualWidth , actualWidth
, actualHeight , actualHeight
, placement , placement
, tp , tp
, e = $.Event('show')
if (this.hasContent() && this.enabled) { if (this.hasContent() && this.enabled) {
this.$element.trigger(e)
if (e.isDefaultPrevented()) return
$tip = this.tip() $tip = this.tip()
this.setContent() this.setContent()
@@ -1132,19 +1166,18 @@
this.options.placement.call(this, $tip[0], this.$element[0]) : this.options.placement.call(this, $tip[0], this.$element[0]) :
this.options.placement this.options.placement
inside = /in/.test(placement)
$tip $tip
.detach() .detach()
.css({ top: 0, left: 0, display: 'block' }) .css({ top: 0, left: 0, display: 'block' })
.insertAfter(this.$element)
pos = this.getPosition(inside) this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element)
pos = this.getPosition()
actualWidth = $tip[0].offsetWidth actualWidth = $tip[0].offsetWidth
actualHeight = $tip[0].offsetHeight actualHeight = $tip[0].offsetHeight
switch (inside ? placement.split(' ')[1] : placement) { switch (placement) {
case 'bottom': case 'bottom':
tp = {top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2} tp = {top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2}
break break
@@ -1163,6 +1196,8 @@
.offset(tp) .offset(tp)
.addClass(placement) .addClass(placement)
.addClass('in') .addClass('in')
this.$element.trigger('shown')
} }
} }
@@ -1177,6 +1212,10 @@
, hide: function () { , hide: function () {
var that = this var that = this
, $tip = this.tip() , $tip = this.tip()
, e = $.Event('hide')
this.$element.trigger(e)
if (e.isDefaultPrevented()) return
$tip.removeClass('in') $tip.removeClass('in')
@@ -1195,6 +1234,8 @@
removeWithAnimation() : removeWithAnimation() :
$tip.detach() $tip.detach()
this.$element.trigger('hidden')
return this return this
} }
@@ -1209,11 +1250,12 @@
return this.getTitle() return this.getTitle()
} }
, getPosition: function (inside) { , getPosition: function () {
return $.extend({}, (inside ? {top: 0, left: 0} : this.$element.offset()), { var el = this.$element[0]
width: this.$element[0].offsetWidth return $.extend({}, el.getBoundingClientRect ? el.getBoundingClientRect() : {
, height: this.$element[0].offsetHeight width: el.offsetWidth
}) , height: el.offsetHeight
}, this.$element.offset())
} }
, getTitle: function () { , getTitle: function () {
@@ -1252,8 +1294,8 @@
} }
, toggle: function (e) { , toggle: function (e) {
var self = $(e.currentTarget)[this.type](this._options).data(this.type) var self = e ? $(e.currentTarget)[this.type](this._options).data(this.type) : this
self[self.tip().hasClass('in') ? 'hide' : 'show']() self.tip().hasClass('in') ? self.hide() : self.show()
} }
, destroy: function () { , destroy: function () {
@@ -1285,10 +1327,11 @@
, placement: 'top' , placement: 'top'
, selector: false , selector: false
, template: '<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>' , template: '<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>'
, trigger: 'hover' , trigger: 'hover focus'
, title: '' , title: ''
, delay: 0 , delay: 0
, html: false , html: false
, container: false
} }
@@ -1300,8 +1343,9 @@
return this return this
} }
}(window.jQuery);/* =========================================================== }(window.jQuery);
* bootstrap-popover.js v2.2.2 /* ===========================================================
* bootstrap-popover.js v2.3.0
* http://twitter.github.com/bootstrap/javascript.html#popovers * http://twitter.github.com/bootstrap/javascript.html#popovers
* =========================================================== * ===========================================================
* Copyright 2012 Twitter, Inc. * Copyright 2012 Twitter, Inc.
@@ -1414,7 +1458,7 @@
} }
}(window.jQuery);/* ============================================================= }(window.jQuery);/* =============================================================
* bootstrap-scrollspy.js v2.2.2 * bootstrap-scrollspy.js v2.3.0
* http://twitter.github.com/bootstrap/javascript.html#scrollspy * http://twitter.github.com/bootstrap/javascript.html#scrollspy
* ============================================================= * =============================================================
* Copyright 2012 Twitter, Inc. * Copyright 2012 Twitter, Inc.
@@ -1474,7 +1518,7 @@
, $href = /^#\w/.test(href) && $(href) , $href = /^#\w/.test(href) && $(href)
return ( $href return ( $href
&& $href.length && $href.length
&& [[ $href.position().top + self.$scrollElement.scrollTop(), href ]] ) || null && [[ $href.position().top + (!$.isWindow(self.$scrollElement.get(0)) && self.$scrollElement.scrollTop()), href ]] ) || null
}) })
.sort(function (a, b) { return a[0] - b[0] }) .sort(function (a, b) { return a[0] - b[0] })
.each(function () { .each(function () {
@@ -1575,7 +1619,7 @@
}) })
}(window.jQuery);/* ======================================================== }(window.jQuery);/* ========================================================
* bootstrap-tab.js v2.2.2 * bootstrap-tab.js v2.3.0
* http://twitter.github.com/bootstrap/javascript.html#tabs * http://twitter.github.com/bootstrap/javascript.html#tabs
* ======================================================== * ========================================================
* Copyright 2012 Twitter, Inc. * Copyright 2012 Twitter, Inc.
@@ -1718,7 +1762,7 @@
}) })
}(window.jQuery);/* ============================================================= }(window.jQuery);/* =============================================================
* bootstrap-typeahead.js v2.2.2 * bootstrap-typeahead.js v2.3.0
* http://twitter.github.com/bootstrap/javascript.html#typeahead * http://twitter.github.com/bootstrap/javascript.html#typeahead
* ============================================================= * =============================================================
* Copyright 2012 Twitter, Inc. * Copyright 2012 Twitter, Inc.
@@ -1891,6 +1935,7 @@
, listen: function () { , listen: function () {
this.$element this.$element
.on('focus', $.proxy(this.focus, this))
.on('blur', $.proxy(this.blur, this)) .on('blur', $.proxy(this.blur, this))
.on('keypress', $.proxy(this.keypress, this)) .on('keypress', $.proxy(this.keypress, this))
.on('keyup', $.proxy(this.keyup, this)) .on('keyup', $.proxy(this.keyup, this))
@@ -1902,6 +1947,7 @@
this.$menu this.$menu
.on('click', $.proxy(this.click, this)) .on('click', $.proxy(this.click, this))
.on('mouseenter', 'li', $.proxy(this.mouseenter, this)) .on('mouseenter', 'li', $.proxy(this.mouseenter, this))
.on('mouseleave', 'li', $.proxy(this.mouseleave, this))
} }
, eventSupported: function(eventName) { , eventSupported: function(eventName) {
@@ -1975,22 +2021,33 @@
e.preventDefault() e.preventDefault()
} }
, focus: function (e) {
this.focused = true
}
, blur: function (e) { , blur: function (e) {
var that = this this.focused = false
setTimeout(function () { that.hide() }, 150) if (!this.mousedover && this.shown) this.hide()
} }
, click: function (e) { , click: function (e) {
e.stopPropagation() e.stopPropagation()
e.preventDefault() e.preventDefault()
this.select() this.select()
this.$element.focus()
} }
, mouseenter: function (e) { , mouseenter: function (e) {
this.mousedover = true
this.$menu.find('.active').removeClass('active') this.$menu.find('.active').removeClass('active')
$(e.currentTarget).addClass('active') $(e.currentTarget).addClass('active')
} }
, mouseleave: function (e) {
this.mousedover = false
if (!this.focused && this.shown) this.hide()
}
} }
@@ -2041,7 +2098,7 @@
}(window.jQuery); }(window.jQuery);
/* ========================================================== /* ==========================================================
* bootstrap-affix.js v2.2.2 * bootstrap-affix.js v2.3.0
* http://twitter.github.com/bootstrap/javascript.html#affix * http://twitter.github.com/bootstrap/javascript.html#affix
* ========================================================== * ==========================================================
* Copyright 2012 Twitter, Inc. * Copyright 2012 Twitter, Inc.
+2 -2
View File
File diff suppressed because one or more lines are too long
+2 -3
View File
@@ -453,7 +453,7 @@
For example, <code>&lt;section&gt;</code> should be wrapped as inline. For example, <code>&lt;section&gt;</code> should be wrapped as inline.
</div> </div>
<pre class="prettyprint linenums"> <pre class="prettyprint linenums">
For example, &lt;code&gt;&lt;section&gt;&lt;/code&gt; should be wrapped as inline. For example, &lt;code&gt;&amp;lt;section&amp;gt;&lt;/code&gt; should be wrapped as inline.
</pre> </pre>
<h2>Basic block</h2> <h2>Basic block</h2>
@@ -527,7 +527,7 @@ For example, &lt;code&gt;&lt;section&gt;&lt;/code&gt; should be wrapped as inlin
<p>Add any of the following classes to the <code>.table</code> base class.</p> <p>Add any of the following classes to the <code>.table</code> base class.</p>
<h3><code>.table-striped</code></h3> <h3><code>.table-striped</code></h3>
<p>Adds zebra-striping to any table row within the <code>&lt;tbody&gt;</code> via the <code>:nth-child</code> CSS selector (not available in IE7-IE8).</p> <p>Adds zebra-striping to any table row within the <code>&lt;tbody&gt;</code> via the <code>:nth-child</code> CSS selector (not available in IE7-8).</p>
<div class="bs-docs-example"> <div class="bs-docs-example">
<table class="table table-striped"> <table class="table table-striped">
<thead> <thead>
@@ -2041,7 +2041,6 @@ For example, &lt;code&gt;&lt;section&gt;&lt;/code&gt; should be wrapped as inlin
<pre class="prettyprint linenums"> <pre class="prettyprint linenums">
&lt;div class="btn-toolbar"&gt; &lt;div class="btn-toolbar"&gt;
&lt;div class="btn-group"&gt; &lt;div class="btn-group"&gt;
&lt;a class="btn" href="#"&gt;&lt;i class="icon-align-left"&gt;&lt;/i&gt;&lt;/a&gt; &lt;a class="btn" href="#"&gt;&lt;i class="icon-align-left"&gt;&lt;/i&gt;&lt;/a&gt;
&lt;a class="btn" href="#"&gt;&lt;i class="icon-align-center"&gt;&lt;/i&gt;&lt;/a&gt; &lt;a class="btn" href="#"&gt;&lt;i class="icon-align-center"&gt;&lt;/i&gt;&lt;/a&gt;
&lt;a class="btn" href="#"&gt;&lt;i class="icon-align-right"&gt;&lt;/i&gt;&lt;/a&gt; &lt;a class="btn" href="#"&gt;&lt;i class="icon-align-right"&gt;&lt;/i&gt;&lt;/a&gt;
+1 -1
View File
@@ -2488,7 +2488,7 @@
<p><button class="close" style="float: none;">&times;</button></p> <p><button class="close" style="float: none;">&times;</button></p>
</div> </div>
<pre class="prettyprint linenums">&lt;button class="close"&gt;&amp;times;&lt;/button&gt;</pre> <pre class="prettyprint linenums">&lt;button class="close"&gt;&amp;times;&lt;/button&gt;</pre>
<p>iOS devices require an href="#" for click events if you would rather use an anchor.</p> <p>iOS devices require an <code>href="#"</code> for click events if you would rather use an anchor.</p>
<pre class="prettyprint linenums">&lt;a class="close" href="#"&gt;&amp;times;&lt;/a&gt;</pre> <pre class="prettyprint linenums">&lt;a class="close" href="#"&gt;&amp;times;&lt;/a&gt;</pre>
<h2>Helper classes</h2> <h2>Helper classes</h2>
+1
View File
@@ -448,5 +448,6 @@
}) })
}(window.jQuery) }(window.jQuery)
</script> </script>
<script src="../assets/js/holder/holder.js"></script>
</body> </body>
</html> </html>
@@ -57,6 +57,8 @@
} }
.navbar .nav { .navbar .nav {
margin: 0; margin: 0;
display: table;
width: 100%;
} }
.navbar .nav li { .navbar .nav li {
display: table-cell; display: table-cell;
+12 -5
View File
@@ -198,7 +198,7 @@
<div class="page-header"> <div class="page-header">
<h1>4. Basic HTML template</h1> <h1>4. Basic HTML template</h1>
</div> </div>
<p class="lead">With a brief intro into the contents out of the way, we can focus on putting Bootstrap to use. To do that, we'll utilize a basic HTML template that includes everything we mentioned in the <a href="#file-structure">File structure</a>.</p> <p class="lead">With a brief intro into the contents out of the way, we can focus on putting Bootstrap to use. To do that, we'll utilize a basic HTML template that includes everything we mentioned in the <a href="./getting-started.html#file-structure">File structure</a>.</p>
<p>Now, here's a look at a <strong>typical HTML file</strong>:</p> <p>Now, here's a look at a <strong>typical HTML file</strong>:</p>
<pre class="prettyprint linenums"> <pre class="prettyprint linenums">
&lt;!DOCTYPE html&gt; &lt;!DOCTYPE html&gt;
@@ -243,21 +243,21 @@
<ul class="thumbnails bootstrap-examples"> <ul class="thumbnails bootstrap-examples">
<li class="span3"> <li class="span3">
<a class="thumbnail" href="examples/starter-template.html"> <a class="thumbnail" href="examples/starter-template.html">
<img src="assets/img/examples/bootstrap-example-starter.jpg" alt=""> <img src="assets/img/examples/bootstrap-example-starter.png" alt="">
</a> </a>
<h4>Starter template</h4> <h4>Starter template</h4>
<p>A barebones HTML document with all the Bootstrap CSS and JavaScript included.</p> <p>A barebones HTML document with all the Bootstrap CSS and JavaScript included.</p>
</li> </li>
<li class="span3"> <li class="span3">
<a class="thumbnail" href="examples/hero.html"> <a class="thumbnail" href="examples/hero.html">
<img src="assets/img/examples/bootstrap-example-hero.jpg" alt=""> <img src="assets/img/examples/bootstrap-example-marketing.png" alt="">
</a> </a>
<h4>Basic marketing site</h4> <h4>Basic marketing site</h4>
<p>Featuring a hero unit for a primary message and three supporting elements.</p> <p>Featuring a hero unit for a primary message and three supporting elements.</p>
</li> </li>
<li class="span3"> <li class="span3">
<a class="thumbnail" href="examples/fluid.html"> <a class="thumbnail" href="examples/fluid.html">
<img src="assets/img/examples/bootstrap-example-fluid.jpg" alt=""> <img src="assets/img/examples/bootstrap-example-fluid.png" alt="">
</a> </a>
<h4>Fluid layout</h4> <h4>Fluid layout</h4>
<p>Uses our new responsive, fluid grid system to create a seamless liquid layout.</p> <p>Uses our new responsive, fluid grid system to create a seamless liquid layout.</p>
@@ -270,6 +270,13 @@
<h4>Narrow marketing</h4> <h4>Narrow marketing</h4>
<p>Slim, lightweight marketing template for small projects or teams.</p> <p>Slim, lightweight marketing template for small projects or teams.</p>
</li> </li>
<li class="span3">
<a class="thumbnail" href="examples/justified-nav.html">
<img src="assets/img/examples/bootstrap-example-justified-nav.png" alt="">
</a>
<h4>Justified nav</h4>
<p>Marketing page with equal-width navigation links in a modified navbar.</p>
</li>
<li class="span3"> <li class="span3">
<a class="thumbnail" href="examples/signin.html"> <a class="thumbnail" href="examples/signin.html">
<img src="assets/img/examples/bootstrap-example-signin.png" alt=""> <img src="assets/img/examples/bootstrap-example-signin.png" alt="">
@@ -277,6 +284,7 @@
<h4>Sign in</h4> <h4>Sign in</h4>
<p>Barebones sign in form with custom, larger form controls and a flexible layout.</p> <p>Barebones sign in form with custom, larger form controls and a flexible layout.</p>
</li> </li>
<li class="span3"> <li class="span3">
<a class="thumbnail" href="examples/sticky-footer.html"> <a class="thumbnail" href="examples/sticky-footer.html">
<img src="assets/img/examples/bootstrap-example-sticky-footer.png" alt=""> <img src="assets/img/examples/bootstrap-example-sticky-footer.png" alt="">
@@ -284,7 +292,6 @@
<h4>Sticky footer</h4> <h4>Sticky footer</h4>
<p>Pin a fixed-height footer to the bottom of the user's viewport.</p> <p>Pin a fixed-height footer to the bottom of the user's viewport.</p>
</li> </li>
<li class="span3"> <li class="span3">
<a class="thumbnail" href="examples/carousel.html"> <a class="thumbnail" href="examples/carousel.html">
<img src="assets/img/examples/bootstrap-example-carousel.png" alt=""> <img src="assets/img/examples/bootstrap-example-carousel.png" alt="">
+1 -1
View File
@@ -87,7 +87,7 @@
<a href="./extend.html" >Extend</a> <a href="./extend.html" >Extend</a>
</li> </li>
<li> <li>
Version 2.2.2 Version 2.3.0
</li> </li>
</ul> </ul>
</div> </div>
+67 -57
View File
@@ -161,7 +161,7 @@ $('#myModal').on('show', function (e) {
<h1>Transitions <small>bootstrap-transition.js</small></h1> <h1>Transitions <small>bootstrap-transition.js</small></h1>
</div> </div>
<h3>About transitions</h3> <h3>About transitions</h3>
<p>For simple transition effects, include bootstrap-transition.js once alongside the other JS files. If you're using the compiled (or minified) bootstrap.js, there is no need to include this&mdash;it's already there.</p> <p>For simple transition effects, include <strong>bootstrap-transition.js</strong> once alongside the other JS files. If you're using the compiled (or minified) <strong>bootstrap.js</strong>, there is no need to include this&mdash;it's already there.</p>
<h3>Use cases</h3> <h3>Use cases</h3>
<p>A few examples of the transition plugin:</p> <p>A few examples of the transition plugin:</p>
<ul> <ul>
@@ -405,21 +405,21 @@ $('#myModal').on('hidden', function () {
<li class="dropdown"> <li class="dropdown">
<a id="drop1" href="#" role="button" class="dropdown-toggle" data-toggle="dropdown">Dropdown <b class="caret"></b></a> <a id="drop1" href="#" role="button" class="dropdown-toggle" data-toggle="dropdown">Dropdown <b class="caret"></b></a>
<ul class="dropdown-menu" role="menu" aria-labelledby="drop1"> <ul class="dropdown-menu" role="menu" aria-labelledby="drop1">
<li><a tabindex="-1" href="http://google.com">Action</a></li> <li role="presentation"><a role="menuitem" tabindex="-1" href="http://google.com">Action</a></li>
<li><a tabindex="-1" href="#anotherAction">Another action</a></li> <li role="presentation"><a role="menuitem" tabindex="-1" href="#anotherAction">Another action</a></li>
<li><a tabindex="-1" href="#">Something else here</a></li> <li role="presentation"><a role="menuitem" tabindex="-1" href="#">Something else here</a></li>
<li class="divider"></li> <li role="presentation" class="divider"></li>
<li><a tabindex="-1" href="#">Separated link</a></li> <li role="presentation"><a role="menuitem" tabindex="-1" href="#">Separated link</a></li>
</ul> </ul>
</li> </li>
<li class="dropdown"> <li class="dropdown">
<a href="#" id="drop2" role="button" class="dropdown-toggle" data-toggle="dropdown">Dropdown 2 <b class="caret"></b></a> <a href="#" id="drop2" role="button" class="dropdown-toggle" data-toggle="dropdown">Dropdown 2 <b class="caret"></b></a>
<ul class="dropdown-menu" role="menu" aria-labelledby="drop2"> <ul class="dropdown-menu" role="menu" aria-labelledby="drop2">
<li><a tabindex="-1" href="#">Action</a></li> <li role="presentation"><a role="menuitem" tabindex="-1" href="#">Action</a></li>
<li><a tabindex="-1" href="#">Another action</a></li> <li role="presentation"><a role="menuitem" tabindex="-1" href="#">Another action</a></li>
<li><a tabindex="-1" href="#">Something else here</a></li> <li role="presentation"><a role="menuitem" tabindex="-1" href="#">Something else here</a></li>
<li class="divider"></li> <li role="presentation" class="divider"></li>
<li><a tabindex="-1" href="#">Separated link</a></li> <li role="presentation"><a role="menuitem" tabindex="-1" href="#">Separated link</a></li>
</ul> </ul>
</li> </li>
</ul> </ul>
@@ -427,11 +427,11 @@ $('#myModal').on('hidden', function () {
<li id="fat-menu" class="dropdown"> <li id="fat-menu" class="dropdown">
<a href="#" id="drop3" role="button" class="dropdown-toggle" data-toggle="dropdown">Dropdown 3 <b class="caret"></b></a> <a href="#" id="drop3" role="button" class="dropdown-toggle" data-toggle="dropdown">Dropdown 3 <b class="caret"></b></a>
<ul class="dropdown-menu" role="menu" aria-labelledby="drop3"> <ul class="dropdown-menu" role="menu" aria-labelledby="drop3">
<li><a tabindex="-1" href="#">Action</a></li> <li role="presentation"><a role="menuitem" tabindex="-1" href="#">Action</a></li>
<li><a tabindex="-1" href="#">Another action</a></li> <li role="presentation"><a role="menuitem" tabindex="-1" href="#">Another action</a></li>
<li><a tabindex="-1" href="#">Something else here</a></li> <li role="presentation"><a role="menuitem" tabindex="-1" href="#">Something else here</a></li>
<li class="divider"></li> <li role="presentation" class="divider"></li>
<li><a tabindex="-1" href="#">Separated link</a></li> <li role="presentation"><a role="menuitem" tabindex="-1" href="#">Separated link</a></li>
</ul> </ul>
</li> </li>
</ul> </ul>
@@ -447,31 +447,31 @@ $('#myModal').on('hidden', function () {
<li class="dropdown"> <li class="dropdown">
<a class="dropdown-toggle" id="drop4" role="button" data-toggle="dropdown" href="#">Dropdown <b class="caret"></b></a> <a class="dropdown-toggle" id="drop4" role="button" data-toggle="dropdown" href="#">Dropdown <b class="caret"></b></a>
<ul id="menu1" class="dropdown-menu" role="menu" aria-labelledby="drop4"> <ul id="menu1" class="dropdown-menu" role="menu" aria-labelledby="drop4">
<li><a tabindex="-1" href="#">Action</a></li> <li role="presentation"><a role="menuitem" tabindex="-1" href="#">Action</a></li>
<li><a tabindex="-1" href="#">Another action</a></li> <li role="presentation"><a role="menuitem" tabindex="-1" href="#">Another action</a></li>
<li><a tabindex="-1" href="#">Something else here</a></li> <li role="presentation"><a role="menuitem" tabindex="-1" href="#">Something else here</a></li>
<li class="divider"></li> <li role="presentation" class="divider"></li>
<li><a tabindex="-1" href="#">Separated link</a></li> <li role="presentation"><a role="menuitem" tabindex="-1" href="#">Separated link</a></li>
</ul> </ul>
</li> </li>
<li class="dropdown"> <li class="dropdown">
<a class="dropdown-toggle" id="drop5" role="button" data-toggle="dropdown" href="#">Dropdown 2 <b class="caret"></b></a> <a class="dropdown-toggle" id="drop5" role="button" data-toggle="dropdown" href="#">Dropdown 2 <b class="caret"></b></a>
<ul id="menu2" class="dropdown-menu" role="menu" aria-labelledby="drop5"> <ul id="menu2" class="dropdown-menu" role="menu" aria-labelledby="drop5">
<li><a tabindex="-1" href="#">Action</a></li> <li role="presentation"><a role="menuitem" tabindex="-1" href="#">Action</a></li>
<li><a tabindex="-1" href="#">Another action</a></li> <li role="presentation"><a role="menuitem" tabindex="-1" href="#">Another action</a></li>
<li><a tabindex="-1" href="#">Something else here</a></li> <li role="presentation"><a role="menuitem" tabindex="-1" href="#">Something else here</a></li>
<li class="divider"></li> <li role="presentation" class="divider"></li>
<li><a tabindex="-1" href="#">Separated link</a></li> <li role="presentation"><a role="menuitem" tabindex="-1" href="#">Separated link</a></li>
</ul> </ul>
</li> </li>
<li class="dropdown"> <li class="dropdown">
<a class="dropdown-toggle" id="drop5" role="button" data-toggle="dropdown" href="#">Dropdown 3 <b class="caret"></b></a> <a class="dropdown-toggle" id="drop5" role="button" data-toggle="dropdown" href="#">Dropdown 3 <b class="caret"></b></a>
<ul id="menu3" class="dropdown-menu" role="menu" aria-labelledby="drop5"> <ul id="menu3" class="dropdown-menu" role="menu" aria-labelledby="drop5">
<li><a tabindex="-1" href="#">Action</a></li> <li role="presentation"><a role="menuitem" tabindex="-1" href="#">Action</a></li>
<li><a tabindex="-1" href="#">Another action</a></li> <li role="presentation"><a role="menuitem" tabindex="-1" href="#">Another action</a></li>
<li><a tabindex="-1" href="#">Something else here</a></li> <li role="presentation"><a role="menuitem" tabindex="-1" href="#">Something else here</a></li>
<li class="divider"></li> <li role="presentation" class="divider"></li>
<li><a tabindex="-1" href="#">Separated link</a></li> <li role="presentation"><a role="menuitem" tabindex="-1" href="#">Separated link</a></li>
</ul> </ul>
</li> </li>
</ul> <!-- /tabs --> </ul> <!-- /tabs -->
@@ -769,17 +769,17 @@ $('a[data-toggle="tab"]').on('shown', function (e) {
<p>Inspired by the excellent jQuery.tipsy plugin written by Jason Frame; Tooltips are an updated version, which don't rely on images, use CSS3 for animations, and data-attributes for local title storage.</p> <p>Inspired by the excellent jQuery.tipsy plugin written by Jason Frame; Tooltips are an updated version, which don't rely on images, use CSS3 for animations, and data-attributes for local title storage.</p>
<p>Hover over the links below to see tooltips:</p> <p>Hover over the links below to see tooltips:</p>
<div class="bs-docs-example tooltip-demo"> <div class="bs-docs-example tooltip-demo">
<p class="muted" style="margin-bottom: 0;">Tight pants next level keffiyeh <a href="#" rel="tooltip" title="Default tooltip">you probably</a> haven't heard of them. Photo booth beard raw denim letterpress vegan messenger bag stumptown. Farm-to-table seitan, mcsweeney's fixie sustainable quinoa 8-bit american apparel <a href="#" rel="tooltip" title="Another tooltip">have a</a> terry richardson vinyl chambray. Beard stumptown, cardigans banh mi lomo thundercats. Tofu biodiesel williamsburg marfa, four loko mcsweeney's cleanse vegan chambray. A really ironic artisan <a href="#" rel="tooltip" title="Another one here too">whatever keytar</a>, scenester farm-to-table banksy Austin <a href="#" rel="tooltip" title="The last tip!">twitter handle</a> freegan cred raw denim single-origin coffee viral. <p class="muted" style="margin-bottom: 0;">Tight pants next level keffiyeh <a href="#" data-toggle="tooltip" title="Default tooltip">you probably</a> haven't heard of them. Photo booth beard raw denim letterpress vegan messenger bag stumptown. Farm-to-table seitan, mcsweeney's fixie sustainable quinoa 8-bit american apparel <a href="#" data-toggle="tooltip" title="Another tooltip">have a</a> terry richardson vinyl chambray. Beard stumptown, cardigans banh mi lomo thundercats. Tofu biodiesel williamsburg marfa, four loko mcsweeney's cleanse vegan chambray. A really ironic artisan <a href="#" data-toggle="tooltip" title="A much longer tooltip belongs right here to demonstrate the max-width we apply.">whatever keytar</a>, scenester farm-to-table banksy Austin <a href="#" data-toggle="tooltip" title="The last tip!">twitter handle</a> freegan cred raw denim single-origin coffee viral.
</p> </p>
</div> </div>
<h3>Four directions</h3> <h3>Four directions</h3>
<div class="bs-docs-example tooltip-demo"> <div class="bs-docs-example tooltip-demo">
<ul class="bs-docs-tooltip-examples"> <ul class="bs-docs-tooltip-examples">
<li><a href="#" rel="tooltip" data-placement="top" title="Tooltip on top">Tooltip on top</a></li> <li><a href="#" data-toggle="tooltip" data-placement="top" title="Tooltip on top">Tooltip on top</a></li>
<li><a href="#" rel="tooltip" data-placement="right" title="Tooltip on right">Tooltip on right</a></li> <li><a href="#" data-toggle="tooltip" data-placement="right" title="Tooltip on right">Tooltip on right</a></li>
<li><a href="#" rel="tooltip" data-placement="bottom" title="Tooltip on bottom">Tooltip on bottom</a></li> <li><a href="#" data-toggle="tooltip" data-placement="bottom" title="Tooltip on bottom">Tooltip on bottom</a></li>
<li><a href="#" rel="tooltip" data-placement="left" title="Tooltip on left">Tooltip on left</a></li> <li><a href="#" data-toggle="tooltip" data-placement="left" title="Tooltip on left">Tooltip on left</a></li>
</ul> </ul>
</div> </div>
@@ -817,7 +817,7 @@ $('a[data-toggle="tab"]').on('shown', function (e) {
</tr> </tr>
<tr> <tr>
<td>placement</td> <td>placement</td>
<td>string|function</td> <td>string | function</td>
<td>'top'</td> <td>'top'</td>
<td>how to position the tooltip - top | bottom | left | right</td> <td>how to position the tooltip - top | bottom | left | right</td>
</tr> </tr>
@@ -836,8 +836,8 @@ $('a[data-toggle="tab"]').on('shown', function (e) {
<tr> <tr>
<td>trigger</td> <td>trigger</td>
<td>string</td> <td>string</td>
<td>'hover'</td> <td>'hover focus'</td>
<td>how tooltip is triggered - click | hover | focus | manual</td> <td>how tooltip is triggered - click | hover | focus | manual. Note you case pass trigger mutliple, space seperated, trigger types.</td>
</tr> </tr>
<tr> <tr>
<td>delay</td> <td>delay</td>
@@ -849,6 +849,14 @@ $('a[data-toggle="tab"]').on('shown', function (e) {
<p>Object structure is: <code>delay: { show: 500, hide: 100 }</code></p> <p>Object structure is: <code>delay: { show: 500, hide: 100 }</code></p>
</td> </td>
</tr> </tr>
<tr>
<td>container</td>
<td>string | false</td>
<td>false</td>
<td>
<p>Appends the tooltip to a specific element <code>container: 'body'</code></p>
</td>
</tr>
</tbody> </tbody>
</table> </table>
<div class="alert alert-info"> <div class="alert alert-info">
@@ -858,7 +866,7 @@ $('a[data-toggle="tab"]').on('shown', function (e) {
<h3>Markup</h3> <h3>Markup</h3>
<p>For performance reasons, the Tooltip and Popover data-apis are opt in. If you would like to use them just specify a selector option.</p> <p>For performance reasons, the Tooltip and Popover data-apis are opt in. If you would like to use them just specify a selector option.</p>
<pre class="prettyprint linenums">&lt;a href="#" rel="tooltip" title="first tooltip"&gt;hover over me&lt;/a&gt;</pre> <pre class="prettyprint linenums">&lt;a href="#" data-toggle="tooltip" title="first tooltip"&gt;hover over me&lt;/a&gt;</pre>
<h3>Methods</h3> <h3>Methods</h3>
<h4>$().tooltip(options)</h4> <h4>$().tooltip(options)</h4>
@@ -930,16 +938,16 @@ $('a[data-toggle="tab"]').on('shown', function (e) {
<h3>Live demo</h3> <h3>Live demo</h3>
<div class="bs-docs-example" style="padding-bottom: 24px;"> <div class="bs-docs-example" style="padding-bottom: 24px;">
<a href="#" class="btn btn-large btn-danger" rel="popover" title="A Title" data-content="And here's some amazing content. It's very engaging. right?">Click to toggle popover</a> <a href="#" class="btn btn-large btn-danger" data-toggle="popover" title="A Title" data-content="And here's some amazing content. It's very engaging. right?">Click to toggle popover</a>
</div> </div>
<h4>Four directions</h4> <h4>Four directions</h4>
<div class="bs-docs-example tooltip-demo"> <div class="bs-docs-example tooltip-demo">
<ul class="bs-docs-tooltip-examples"> <ul class="bs-docs-tooltip-examples">
<li><a href="#" class="btn" rel="popover" data-placement="top" data-content="Vivamus sagittis lacus vel augue laoreet rutrum faucibus." title="Popover on top">Popover on top</a></li> <li><a href="#" class="btn" data-toggle="popover" data-placement="top" data-content="Vivamus sagittis lacus vel augue laoreet rutrum faucibus." title="Popover on top">Popover on top</a></li>
<li><a href="#" class="btn" rel="popover" data-placement="right" data-content="Vivamus sagittis lacus vel augue laoreet rutrum faucibus." title="Popover on right">Popover on right</a></li> <li><a href="#" class="btn" data-toggle="popover" data-placement="right" data-content="Vivamus sagittis lacus vel augue laoreet rutrum faucibus." title="Popover on right">Popover on right</a></li>
<li><a href="#" class="btn" rel="popover" data-placement="bottom" data-content="Vivamus sagittis lacus vel augue laoreet rutrum faucibus." title="Popover on bottom">Popover on bottom</a></li> <li><a href="#" class="btn" data-toggle="popover" data-placement="bottom" data-content="Vivamus sagittis lacus vel augue laoreet rutrum faucibus." title="Popover on bottom">Popover on bottom</a></li>
<li><a href="#" class="btn" rel="popover" data-placement="left" data-content="Vivamus sagittis lacus vel augue laoreet rutrum faucibus." title="Popover on left">Popover on left</a></li> <li><a href="#" class="btn" data-toggle="popover" data-placement="left" data-content="Vivamus sagittis lacus vel augue laoreet rutrum faucibus." title="Popover on left">Popover on left</a></li>
</ul> </ul>
</div> </div>
@@ -977,7 +985,7 @@ $('a[data-toggle="tab"]').on('shown', function (e) {
</tr> </tr>
<tr> <tr>
<td>placement</td> <td>placement</td>
<td>string|function</td> <td>string | function</td>
<td>'right'</td> <td>'right'</td>
<td>how to position the popover - top | bottom | left | right</td> <td>how to position the popover - top | bottom | left | right</td>
</tr> </tr>
@@ -1422,6 +1430,11 @@ $('#myCollapsible').on('hidden', function () {
<p>The slideshow below shows a generic plugin and component for cycling through elements like a carousel.</p> <p>The slideshow below shows a generic plugin and component for cycling through elements like a carousel.</p>
<div class="bs-docs-example"> <div class="bs-docs-example">
<div id="myCarousel" class="carousel slide"> <div id="myCarousel" class="carousel slide">
<ol class="carousel-indicators">
<li data-target="#myCarousel" data-slide-to="0" class="active"></li>
<li data-target="#myCarousel" data-slide-to="1"></li>
<li data-target="#myCarousel" data-slide-to="2"></li>
</ol>
<div class="carousel-inner"> <div class="carousel-inner">
<div class="item active"> <div class="item active">
<img src="assets/img/bootstrap-mdo-sfmoma-01.jpg" alt=""> <img src="assets/img/bootstrap-mdo-sfmoma-01.jpg" alt="">
@@ -1451,6 +1464,11 @@ $('#myCollapsible').on('hidden', function () {
</div> </div>
<pre class="prettyprint linenums"> <pre class="prettyprint linenums">
&lt;div id="myCarousel" class="carousel slide"&gt; &lt;div id="myCarousel" class="carousel slide"&gt;
&lt;ol class="carousel-indicators"&gt
&lt;li data-target="#myCarousel" data-slide-to="0" class="active"&gt&lt;/li&gt
&lt;li data-target="#myCarousel" data-slide-to="1"&gt&lt;/li&gt
&lt;li data-target="#myCarousel" data-slide-to="2"&gt&lt;/li&gt
&lt;/ol&gt
&lt;!-- Carousel items --&gt; &lt;!-- Carousel items --&gt;
&lt;div class="carousel-inner"&gt; &lt;div class="carousel-inner"&gt;
&lt;div class="active item"&gt;&lt;/div&gt; &lt;div class="active item"&gt;&lt;/div&gt;
@@ -1475,14 +1493,14 @@ $('#myCollapsible').on('hidden', function () {
<h2>Usage</h2> <h2>Usage</h2>
<h3>Via data attributes</h3> <h3>Via data attributes</h3>
<p>...</p> <p>Use data attributes to easily control the position of the carousel. <code>data-slide</code> accepts the keywords <code>prev</code> or <code>next</code>, which alters the slide position relative to it's current position. Alternatively, use <code>data-slide-to</code> to pass a raw slide index to the carousel <code>data-slide-to="2"</code>, which jump's the slide position to a particular index beginning with <code>0</code>.</p>
<h3>Via JavaScript</h3> <h3>Via JavaScript</h3>
<p>Call carousel manually with:</p> <p>Call carousel manually with:</p>
<pre class="prettyprint linenums">$('.carousel').carousel()</pre> <pre class="prettyprint linenums">$('.carousel').carousel()</pre>
<h3>Options</h3> <h3>Options</h3>
<p>Options can be passed via data attributes or JavaScript. For data attributes, append the option name to <code>data-</code>, as in <code>data-interval=""</code>.</p> <p>Options can be passed via data attributes or JavaScriptz. For data attributes, append the option name to <code>data-</code>, as in <code>data-interval=""</code>.</p>
<table class="table table-bordered table-striped"> <table class="table table-bordered table-striped">
<thead> <thead>
<tr> <tr>
@@ -1565,7 +1583,7 @@ $('.carousel').carousel({
<input type="text" class="span3" style="margin: 0 auto;" data-provide="typeahead" data-items="4" data-source='["Alabama","Alaska","Arizona","Arkansas","California","Colorado","Connecticut","Delaware","Florida","Georgia","Hawaii","Idaho","Illinois","Indiana","Iowa","Kansas","Kentucky","Louisiana","Maine","Maryland","Massachusetts","Michigan","Minnesota","Mississippi","Missouri","Montana","Nebraska","Nevada","New Hampshire","New Jersey","New Mexico","New York","North Dakota","North Carolina","Ohio","Oklahoma","Oregon","Pennsylvania","Rhode Island","South Carolina","South Dakota","Tennessee","Texas","Utah","Vermont","Virginia","Washington","West Virginia","Wisconsin","Wyoming"]'> <input type="text" class="span3" style="margin: 0 auto;" data-provide="typeahead" data-items="4" data-source='["Alabama","Alaska","Arizona","Arkansas","California","Colorado","Connecticut","Delaware","Florida","Georgia","Hawaii","Idaho","Illinois","Indiana","Iowa","Kansas","Kentucky","Louisiana","Maine","Maryland","Massachusetts","Michigan","Minnesota","Mississippi","Missouri","Montana","Nebraska","Nevada","New Hampshire","New Jersey","New Mexico","New York","North Dakota","North Carolina","Ohio","Oklahoma","Oregon","Pennsylvania","Rhode Island","South Carolina","South Dakota","Tennessee","Texas","Utah","Vermont","Virginia","Washington","West Virginia","Wisconsin","Wyoming"]'>
</div> </div>
<pre class="prettyprint linenums">&lt;input type="text" data-provide="typeahead"&gt;</pre> <pre class="prettyprint linenums">&lt;input type="text" data-provide="typeahead"&gt;</pre>
<p>You'll want to set <code>autocomplete="off"</code> to prevent default browser menus from appearing over the Bootstrap typeahead dropdown.</p>
<hr class="bs-docs-separator"> <hr class="bs-docs-separator">
@@ -1671,14 +1689,6 @@ $('.carousel').carousel({
<p>Call the affix plugin via JavaScript:</p> <p>Call the affix plugin via JavaScript:</p>
<pre class="prettyprint linenums">$('#navbar').affix()</pre> <pre class="prettyprint linenums">$('#navbar').affix()</pre>
<h3>Methods</h3>
<h4>.affix('refresh')</h4>
<p>When using affix in conjunction with adding or removing of elements from the DOM, you'll want to call the refresh method:</p>
<pre class="prettyprint linenums">
$('[data-spy="affix"]').each(function () {
$(this).affix('refresh')
});
</pre>
<h3>Options</h3> <h3>Options</h3>
<p>Options can be passed via data attributes or JavaScript. For data attributes, append the option name to <code>data-</code>, as in <code>data-offset-top="200"</code>.</p> <p>Options can be passed via data attributes or JavaScript. For data attributes, append the option name to <code>data-</code>, as in <code>data-offset-top="200"</code>.</p>
<table class="table table-bordered table-striped"> <table class="table table-bordered table-striped">
+2 -3
View File
@@ -390,7 +390,7 @@
For example, <code>&lt;section&gt;</code> should be wrapped as inline. For example, <code>&lt;section&gt;</code> should be wrapped as inline.
</div> </div>
<pre class="prettyprint linenums"> <pre class="prettyprint linenums">
{{_i}}For example, &lt;code&gt;&lt;section&gt;&lt;/code&gt; should be wrapped as inline.{{/i}} {{_i}}For example, &lt;code&gt;&amp;lt;section&amp;gt;&lt;/code&gt; should be wrapped as inline.{{/i}}
</pre> </pre>
<h2>Basic block</h2> <h2>Basic block</h2>
@@ -464,7 +464,7 @@
<p>{{_i}}Add any of the following classes to the <code>.table</code> base class.{{/i}}</p> <p>{{_i}}Add any of the following classes to the <code>.table</code> base class.{{/i}}</p>
<h3><code>{{_i}}.table-striped{{/i}}</code></h3> <h3><code>{{_i}}.table-striped{{/i}}</code></h3>
<p>{{_i}}Adds zebra-striping to any table row within the <code>&lt;tbody&gt;</code> via the <code>:nth-child</code> CSS selector (not available in IE7-IE8).{{/i}}</p> <p>{{_i}}Adds zebra-striping to any table row within the <code>&lt;tbody&gt;</code> via the <code>:nth-child</code> CSS selector (not available in IE7-8).{{/i}}</p>
<div class="bs-docs-example"> <div class="bs-docs-example">
<table class="table table-striped"> <table class="table table-striped">
<thead> <thead>
@@ -1978,7 +1978,6 @@
<pre class="prettyprint linenums"> <pre class="prettyprint linenums">
&lt;div class="btn-toolbar"&gt; &lt;div class="btn-toolbar"&gt;
&lt;div class="btn-group"&gt; &lt;div class="btn-group"&gt;
&lt;a class="btn" href="#"&gt;&lt;i class="icon-align-left"&gt;&lt;/i&gt;&lt;/a&gt; &lt;a class="btn" href="#"&gt;&lt;i class="icon-align-left"&gt;&lt;/i&gt;&lt;/a&gt;
&lt;a class="btn" href="#"&gt;&lt;i class="icon-align-center"&gt;&lt;/i&gt;&lt;/a&gt; &lt;a class="btn" href="#"&gt;&lt;i class="icon-align-center"&gt;&lt;/i&gt;&lt;/a&gt;
&lt;a class="btn" href="#"&gt;&lt;i class="icon-align-right"&gt;&lt;/i&gt;&lt;/a&gt; &lt;a class="btn" href="#"&gt;&lt;i class="icon-align-right"&gt;&lt;/i&gt;&lt;/a&gt;
+1 -1
View File
@@ -2417,7 +2417,7 @@
<p><button class="close" style="float: none;">&times;</button></p> <p><button class="close" style="float: none;">&times;</button></p>
</div> </div>
<pre class="prettyprint linenums">&lt;button class="close"&gt;&amp;times;&lt;/button&gt;</pre> <pre class="prettyprint linenums">&lt;button class="close"&gt;&amp;times;&lt;/button&gt;</pre>
<p>{{_i}}iOS devices require an href="#" for click events if you would rather use an anchor.{{/i}}</p> <p>{{_i}}iOS devices require an <code>href="#"</code> for click events if you would rather use an anchor.{{/i}}</p>
<pre class="prettyprint linenums">&lt;a class="close" href="#"&gt;&amp;times;&lt;/a&gt;</pre> <pre class="prettyprint linenums">&lt;a class="close" href="#"&gt;&amp;times;&lt;/a&gt;</pre>
<h2>{{_i}}Helper classes{{/i}}</h2> <h2>{{_i}}Helper classes{{/i}}</h2>
+12 -5
View File
@@ -127,7 +127,7 @@
<div class="page-header"> <div class="page-header">
<h1>{{_i}}4. Basic HTML template{{/i}}</h1> <h1>{{_i}}4. Basic HTML template{{/i}}</h1>
</div> </div>
<p class="lead">{{_i}}With a brief intro into the contents out of the way, we can focus on putting Bootstrap to use. To do that, we'll utilize a basic HTML template that includes everything we mentioned in the <a href="#file-structure">File structure</a>.{{/i}}</p> <p class="lead">{{_i}}With a brief intro into the contents out of the way, we can focus on putting Bootstrap to use. To do that, we'll utilize a basic HTML template that includes everything we mentioned in the <a href="./getting-started.html#file-structure">File structure</a>.{{/i}}</p>
<p>{{_i}}Now, here's a look at a <strong>typical HTML file</strong>:{{/i}}</p> <p>{{_i}}Now, here's a look at a <strong>typical HTML file</strong>:{{/i}}</p>
<pre class="prettyprint linenums"> <pre class="prettyprint linenums">
&lt;!DOCTYPE html&gt; &lt;!DOCTYPE html&gt;
@@ -172,21 +172,21 @@
<ul class="thumbnails bootstrap-examples"> <ul class="thumbnails bootstrap-examples">
<li class="span3"> <li class="span3">
<a class="thumbnail" href="examples/starter-template.html"> <a class="thumbnail" href="examples/starter-template.html">
<img src="assets/img/examples/bootstrap-example-starter.jpg" alt=""> <img src="assets/img/examples/bootstrap-example-starter.png" alt="">
</a> </a>
<h4>{{_i}}Starter template{{/i}}</h4> <h4>{{_i}}Starter template{{/i}}</h4>
<p>{{_i}}A barebones HTML document with all the Bootstrap CSS and JavaScript included.{{/i}}</p> <p>{{_i}}A barebones HTML document with all the Bootstrap CSS and JavaScript included.{{/i}}</p>
</li> </li>
<li class="span3"> <li class="span3">
<a class="thumbnail" href="examples/hero.html"> <a class="thumbnail" href="examples/hero.html">
<img src="assets/img/examples/bootstrap-example-hero.jpg" alt=""> <img src="assets/img/examples/bootstrap-example-marketing.png" alt="">
</a> </a>
<h4>{{_i}}Basic marketing site{{/i}}</h4> <h4>{{_i}}Basic marketing site{{/i}}</h4>
<p>{{_i}}Featuring a hero unit for a primary message and three supporting elements.{{/i}}</p> <p>{{_i}}Featuring a hero unit for a primary message and three supporting elements.{{/i}}</p>
</li> </li>
<li class="span3"> <li class="span3">
<a class="thumbnail" href="examples/fluid.html"> <a class="thumbnail" href="examples/fluid.html">
<img src="assets/img/examples/bootstrap-example-fluid.jpg" alt=""> <img src="assets/img/examples/bootstrap-example-fluid.png" alt="">
</a> </a>
<h4>{{_i}}Fluid layout{{/i}}</h4> <h4>{{_i}}Fluid layout{{/i}}</h4>
<p>{{_i}}Uses our new responsive, fluid grid system to create a seamless liquid layout.{{/i}}</p> <p>{{_i}}Uses our new responsive, fluid grid system to create a seamless liquid layout.{{/i}}</p>
@@ -199,6 +199,13 @@
<h4>{{_i}}Narrow marketing{{/i}}</h4> <h4>{{_i}}Narrow marketing{{/i}}</h4>
<p>{{_i}}Slim, lightweight marketing template for small projects or teams.{{/i}}</p> <p>{{_i}}Slim, lightweight marketing template for small projects or teams.{{/i}}</p>
</li> </li>
<li class="span3">
<a class="thumbnail" href="examples/justified-nav.html">
<img src="assets/img/examples/bootstrap-example-justified-nav.png" alt="">
</a>
<h4>{{_i}}Justified nav{{/i}}</h4>
<p>{{_i}}Marketing page with equal-width navigation links in a modified navbar.{{/i}}</p>
</li>
<li class="span3"> <li class="span3">
<a class="thumbnail" href="examples/signin.html"> <a class="thumbnail" href="examples/signin.html">
<img src="assets/img/examples/bootstrap-example-signin.png" alt=""> <img src="assets/img/examples/bootstrap-example-signin.png" alt="">
@@ -206,6 +213,7 @@
<h4>{{_i}}Sign in{{/i}}</h4> <h4>{{_i}}Sign in{{/i}}</h4>
<p>{{_i}}Barebones sign in form with custom, larger form controls and a flexible layout.{{/i}}</p> <p>{{_i}}Barebones sign in form with custom, larger form controls and a flexible layout.{{/i}}</p>
</li> </li>
<li class="span3"> <li class="span3">
<a class="thumbnail" href="examples/sticky-footer.html"> <a class="thumbnail" href="examples/sticky-footer.html">
<img src="assets/img/examples/bootstrap-example-sticky-footer.png" alt=""> <img src="assets/img/examples/bootstrap-example-sticky-footer.png" alt="">
@@ -213,7 +221,6 @@
<h4>{{_i}}Sticky footer{{/i}}</h4> <h4>{{_i}}Sticky footer{{/i}}</h4>
<p>{{_i}}Pin a fixed-height footer to the bottom of the user's viewport.{{/i}}</p> <p>{{_i}}Pin a fixed-height footer to the bottom of the user's viewport.{{/i}}</p>
</li> </li>
<li class="span3"> <li class="span3">
<a class="thumbnail" href="examples/carousel.html"> <a class="thumbnail" href="examples/carousel.html">
<img src="assets/img/examples/bootstrap-example-carousel.png" alt=""> <img src="assets/img/examples/bootstrap-example-carousel.png" alt="">
+2 -2
View File
@@ -3,7 +3,7 @@
<h1>{{_i}}Bootstrap{{/i}}</h1> <h1>{{_i}}Bootstrap{{/i}}</h1>
<p>{{_i}}Sleek, intuitive, and powerful front-end framework for faster and easier web development.{{/i}}</p> <p>{{_i}}Sleek, intuitive, and powerful front-end framework for faster and easier web development.{{/i}}</p>
<p> <p>
<a href="assets/bootstrap.zip" class="btn btn-primary btn-large" {{#production}}onclick="_gaq.push(['_trackEvent', 'Jumbotron actions', 'Download', 'Download 2.2.2']);"{{/production}}>{{_i}}Download Bootstrap{{/i}}</a> <a href="assets/bootstrap.zip" class="btn btn-primary btn-large" {{#production}}onclick="_gaq.push(['_trackEvent', 'Jumbotron actions', 'Download', 'Download 2.3.0']);"{{/production}}>{{_i}}Download Bootstrap{{/i}}</a>
</p> </p>
<ul class="masthead-links"> <ul class="masthead-links">
<li> <li>
@@ -16,7 +16,7 @@
<a href="./extend.html" {{#production}}onclick="_gaq.push(['_trackEvent', 'Jumbotron actions', 'Jumbotron links', 'Extend']);"{{/production}}>{{_i}}Extend{{/i}}</a> <a href="./extend.html" {{#production}}onclick="_gaq.push(['_trackEvent', 'Jumbotron actions', 'Jumbotron links', 'Extend']);"{{/production}}>{{_i}}Extend{{/i}}</a>
</li> </li>
<li> <li>
{{_i}}Version 2.2.2{{/i}} {{_i}}Version 2.3.0{{/i}}
</li> </li>
</ul> </ul>
</div> </div>
+67 -57
View File
@@ -90,7 +90,7 @@ $('#myModal').on('show', function (e) {
<h1>{{_i}}Transitions{{/i}} <small>bootstrap-transition.js</small></h1> <h1>{{_i}}Transitions{{/i}} <small>bootstrap-transition.js</small></h1>
</div> </div>
<h3>{{_i}}About transitions{{/i}}</h3> <h3>{{_i}}About transitions{{/i}}</h3>
<p>{{_i}}For simple transition effects, include bootstrap-transition.js once alongside the other JS files. If you're using the compiled (or minified) bootstrap.js, there is no need to include this&mdash;it's already there.{{/i}}</p> <p>{{_i}}For simple transition effects, include <strong>bootstrap-transition.js</strong> once alongside the other JS files. If you're using the compiled (or minified) <strong>bootstrap.js</strong>, there is no need to include this&mdash;it's already there.{{/i}}</p>
<h3>{{_i}}Use cases{{/i}}</h3> <h3>{{_i}}Use cases{{/i}}</h3>
<p>{{_i}}A few examples of the transition plugin:{{/i}}</p> <p>{{_i}}A few examples of the transition plugin:{{/i}}</p>
<ul> <ul>
@@ -335,21 +335,21 @@ $('#myModal').on('hidden', function () {
<li class="dropdown"> <li class="dropdown">
<a id="drop1" href="#" role="button" class="dropdown-toggle" data-toggle="dropdown">{{_i}}Dropdown{{/i}} <b class="caret"></b></a> <a id="drop1" href="#" role="button" class="dropdown-toggle" data-toggle="dropdown">{{_i}}Dropdown{{/i}} <b class="caret"></b></a>
<ul class="dropdown-menu" role="menu" aria-labelledby="drop1"> <ul class="dropdown-menu" role="menu" aria-labelledby="drop1">
<li><a tabindex="-1" href="http://google.com">{{_i}}Action{{/i}}</a></li> <li role="presentation"><a role="menuitem" tabindex="-1" href="http://google.com">{{_i}}Action{{/i}}</a></li>
<li><a tabindex="-1" href="#anotherAction">{{_i}}Another action{{/i}}</a></li> <li role="presentation"><a role="menuitem" tabindex="-1" href="#anotherAction">{{_i}}Another action{{/i}}</a></li>
<li><a tabindex="-1" href="#">{{_i}}Something else here{{/i}}</a></li> <li role="presentation"><a role="menuitem" tabindex="-1" href="#">{{_i}}Something else here{{/i}}</a></li>
<li class="divider"></li> <li role="presentation" class="divider"></li>
<li><a tabindex="-1" href="#">{{_i}}Separated link{{/i}}</a></li> <li role="presentation"><a role="menuitem" tabindex="-1" href="#">{{_i}}Separated link{{/i}}</a></li>
</ul> </ul>
</li> </li>
<li class="dropdown"> <li class="dropdown">
<a href="#" id="drop2" role="button" class="dropdown-toggle" data-toggle="dropdown">{{_i}}Dropdown 2 {{/i}}<b class="caret"></b></a> <a href="#" id="drop2" role="button" class="dropdown-toggle" data-toggle="dropdown">{{_i}}Dropdown 2 {{/i}}<b class="caret"></b></a>
<ul class="dropdown-menu" role="menu" aria-labelledby="drop2"> <ul class="dropdown-menu" role="menu" aria-labelledby="drop2">
<li><a tabindex="-1" href="#">{{_i}}Action{{/i}}</a></li> <li role="presentation"><a role="menuitem" tabindex="-1" href="#">{{_i}}Action{{/i}}</a></li>
<li><a tabindex="-1" href="#">{{_i}}Another action{{/i}}</a></li> <li role="presentation"><a role="menuitem" tabindex="-1" href="#">{{_i}}Another action{{/i}}</a></li>
<li><a tabindex="-1" href="#">{{_i}}Something else here{{/i}}</a></li> <li role="presentation"><a role="menuitem" tabindex="-1" href="#">{{_i}}Something else here{{/i}}</a></li>
<li class="divider"></li> <li role="presentation" class="divider"></li>
<li><a tabindex="-1" href="#">{{_i}}Separated link{{/i}}</a></li> <li role="presentation"><a role="menuitem" tabindex="-1" href="#">{{_i}}Separated link{{/i}}</a></li>
</ul> </ul>
</li> </li>
</ul> </ul>
@@ -357,11 +357,11 @@ $('#myModal').on('hidden', function () {
<li id="fat-menu" class="dropdown"> <li id="fat-menu" class="dropdown">
<a href="#" id="drop3" role="button" class="dropdown-toggle" data-toggle="dropdown">{{_i}}Dropdown 3{{/i}} <b class="caret"></b></a> <a href="#" id="drop3" role="button" class="dropdown-toggle" data-toggle="dropdown">{{_i}}Dropdown 3{{/i}} <b class="caret"></b></a>
<ul class="dropdown-menu" role="menu" aria-labelledby="drop3"> <ul class="dropdown-menu" role="menu" aria-labelledby="drop3">
<li><a tabindex="-1" href="#">{{_i}}Action{{/i}}</a></li> <li role="presentation"><a role="menuitem" tabindex="-1" href="#">{{_i}}Action{{/i}}</a></li>
<li><a tabindex="-1" href="#">{{_i}}Another action{{/i}}</a></li> <li role="presentation"><a role="menuitem" tabindex="-1" href="#">{{_i}}Another action{{/i}}</a></li>
<li><a tabindex="-1" href="#">{{_i}}Something else here{{/i}}</a></li> <li role="presentation"><a role="menuitem" tabindex="-1" href="#">{{_i}}Something else here{{/i}}</a></li>
<li class="divider"></li> <li role="presentation" class="divider"></li>
<li><a tabindex="-1" href="#">{{_i}}Separated link{{/i}}</a></li> <li role="presentation"><a role="menuitem" tabindex="-1" href="#">{{_i}}Separated link{{/i}}</a></li>
</ul> </ul>
</li> </li>
</ul> </ul>
@@ -377,31 +377,31 @@ $('#myModal').on('hidden', function () {
<li class="dropdown"> <li class="dropdown">
<a class="dropdown-toggle" id="drop4" role="button" data-toggle="dropdown" href="#">{{_i}}Dropdown{{/i}} <b class="caret"></b></a> <a class="dropdown-toggle" id="drop4" role="button" data-toggle="dropdown" href="#">{{_i}}Dropdown{{/i}} <b class="caret"></b></a>
<ul id="menu1" class="dropdown-menu" role="menu" aria-labelledby="drop4"> <ul id="menu1" class="dropdown-menu" role="menu" aria-labelledby="drop4">
<li><a tabindex="-1" href="#">{{_i}}Action{{/i}}</a></li> <li role="presentation"><a role="menuitem" tabindex="-1" href="#">{{_i}}Action{{/i}}</a></li>
<li><a tabindex="-1" href="#">{{_i}}Another action{{/i}}</a></li> <li role="presentation"><a role="menuitem" tabindex="-1" href="#">{{_i}}Another action{{/i}}</a></li>
<li><a tabindex="-1" href="#">{{_i}}Something else here{{/i}}</a></li> <li role="presentation"><a role="menuitem" tabindex="-1" href="#">{{_i}}Something else here{{/i}}</a></li>
<li class="divider"></li> <li role="presentation" class="divider"></li>
<li><a tabindex="-1" href="#">{{_i}}Separated link{{/i}}</a></li> <li role="presentation"><a role="menuitem" tabindex="-1" href="#">{{_i}}Separated link{{/i}}</a></li>
</ul> </ul>
</li> </li>
<li class="dropdown"> <li class="dropdown">
<a class="dropdown-toggle" id="drop5" role="button" data-toggle="dropdown" href="#">{{_i}}Dropdown 2{{/i}} <b class="caret"></b></a> <a class="dropdown-toggle" id="drop5" role="button" data-toggle="dropdown" href="#">{{_i}}Dropdown 2{{/i}} <b class="caret"></b></a>
<ul id="menu2" class="dropdown-menu" role="menu" aria-labelledby="drop5"> <ul id="menu2" class="dropdown-menu" role="menu" aria-labelledby="drop5">
<li><a tabindex="-1" href="#">{{_i}}Action{{/i}}</a></li> <li role="presentation"><a role="menuitem" tabindex="-1" href="#">{{_i}}Action{{/i}}</a></li>
<li><a tabindex="-1" href="#">{{_i}}Another action{{/i}}</a></li> <li role="presentation"><a role="menuitem" tabindex="-1" href="#">{{_i}}Another action{{/i}}</a></li>
<li><a tabindex="-1" href="#">{{_i}}Something else here{{/i}}</a></li> <li role="presentation"><a role="menuitem" tabindex="-1" href="#">{{_i}}Something else here{{/i}}</a></li>
<li class="divider"></li> <li role="presentation" class="divider"></li>
<li><a tabindex="-1" href="#">{{_i}}Separated link{{/i}}</a></li> <li role="presentation"><a role="menuitem" tabindex="-1" href="#">{{_i}}Separated link{{/i}}</a></li>
</ul> </ul>
</li> </li>
<li class="dropdown"> <li class="dropdown">
<a class="dropdown-toggle" id="drop5" role="button" data-toggle="dropdown" href="#">{{_i}}Dropdown 3{{/i}} <b class="caret"></b></a> <a class="dropdown-toggle" id="drop5" role="button" data-toggle="dropdown" href="#">{{_i}}Dropdown 3{{/i}} <b class="caret"></b></a>
<ul id="menu3" class="dropdown-menu" role="menu" aria-labelledby="drop5"> <ul id="menu3" class="dropdown-menu" role="menu" aria-labelledby="drop5">
<li><a tabindex="-1" href="#">{{_i}}Action{{/i}}</a></li> <li role="presentation"><a role="menuitem" tabindex="-1" href="#">{{_i}}Action{{/i}}</a></li>
<li><a tabindex="-1" href="#">{{_i}}Another action{{/i}}</a></li> <li role="presentation"><a role="menuitem" tabindex="-1" href="#">{{_i}}Another action{{/i}}</a></li>
<li><a tabindex="-1" href="#">{{_i}}Something else here{{/i}}</a></li> <li role="presentation"><a role="menuitem" tabindex="-1" href="#">{{_i}}Something else here{{/i}}</a></li>
<li class="divider"></li> <li role="presentation" class="divider"></li>
<li><a tabindex="-1" href="#">{{_i}}Separated link{{/i}}</a></li> <li role="presentation"><a role="menuitem" tabindex="-1" href="#">{{_i}}Separated link{{/i}}</a></li>
</ul> </ul>
</li> </li>
</ul> <!-- /tabs --> </ul> <!-- /tabs -->
@@ -699,17 +699,17 @@ $('a[data-toggle="tab"]').on('shown', function (e) {
<p>{{_i}}Inspired by the excellent jQuery.tipsy plugin written by Jason Frame; Tooltips are an updated version, which don't rely on images, use CSS3 for animations, and data-attributes for local title storage.{{/i}}</p> <p>{{_i}}Inspired by the excellent jQuery.tipsy plugin written by Jason Frame; Tooltips are an updated version, which don't rely on images, use CSS3 for animations, and data-attributes for local title storage.{{/i}}</p>
<p>{{_i}}Hover over the links below to see tooltips:{{/i}}</p> <p>{{_i}}Hover over the links below to see tooltips:{{/i}}</p>
<div class="bs-docs-example tooltip-demo"> <div class="bs-docs-example tooltip-demo">
<p class="muted" style="margin-bottom: 0;">{{_i}}Tight pants next level keffiyeh <a href="#" rel="tooltip" title="Default tooltip">you probably</a> haven't heard of them. Photo booth beard raw denim letterpress vegan messenger bag stumptown. Farm-to-table seitan, mcsweeney's fixie sustainable quinoa 8-bit american apparel <a href="#" rel="tooltip" title="Another tooltip">have a</a> terry richardson vinyl chambray. Beard stumptown, cardigans banh mi lomo thundercats. Tofu biodiesel williamsburg marfa, four loko mcsweeney's cleanse vegan chambray. A really ironic artisan <a href="#" rel="tooltip" title="Another one here too">whatever keytar</a>, scenester farm-to-table banksy Austin <a href="#" rel="tooltip" title="The last tip!">twitter handle</a> freegan cred raw denim single-origin coffee viral.{{/i}} <p class="muted" style="margin-bottom: 0;">{{_i}}Tight pants next level keffiyeh <a href="#" data-toggle="tooltip" title="Default tooltip">you probably</a> haven't heard of them. Photo booth beard raw denim letterpress vegan messenger bag stumptown. Farm-to-table seitan, mcsweeney's fixie sustainable quinoa 8-bit american apparel <a href="#" data-toggle="tooltip" title="Another tooltip">have a</a> terry richardson vinyl chambray. Beard stumptown, cardigans banh mi lomo thundercats. Tofu biodiesel williamsburg marfa, four loko mcsweeney's cleanse vegan chambray. A really ironic artisan <a href="#" data-toggle="tooltip" title="A much longer tooltip belongs right here to demonstrate the max-width we apply.">whatever keytar</a>, scenester farm-to-table banksy Austin <a href="#" data-toggle="tooltip" title="The last tip!">twitter handle</a> freegan cred raw denim single-origin coffee viral.{{/i}}
</p> </p>
</div>{{! /example }} </div>{{! /example }}
<h3>{{_i}}Four directions{{/i}}</h3> <h3>{{_i}}Four directions{{/i}}</h3>
<div class="bs-docs-example tooltip-demo"> <div class="bs-docs-example tooltip-demo">
<ul class="bs-docs-tooltip-examples"> <ul class="bs-docs-tooltip-examples">
<li><a href="#" rel="tooltip" data-placement="top" title="Tooltip on top">Tooltip on top</a></li> <li><a href="#" data-toggle="tooltip" data-placement="top" title="Tooltip on top">Tooltip on top</a></li>
<li><a href="#" rel="tooltip" data-placement="right" title="Tooltip on right">Tooltip on right</a></li> <li><a href="#" data-toggle="tooltip" data-placement="right" title="Tooltip on right">Tooltip on right</a></li>
<li><a href="#" rel="tooltip" data-placement="bottom" title="Tooltip on bottom">Tooltip on bottom</a></li> <li><a href="#" data-toggle="tooltip" data-placement="bottom" title="Tooltip on bottom">Tooltip on bottom</a></li>
<li><a href="#" rel="tooltip" data-placement="left" title="Tooltip on left">Tooltip on left</a></li> <li><a href="#" data-toggle="tooltip" data-placement="left" title="Tooltip on left">Tooltip on left</a></li>
</ul> </ul>
</div>{{! /example }} </div>{{! /example }}
@@ -747,7 +747,7 @@ $('a[data-toggle="tab"]').on('shown', function (e) {
</tr> </tr>
<tr> <tr>
<td>{{_i}}placement{{/i}}</td> <td>{{_i}}placement{{/i}}</td>
<td>{{_i}}string|function{{/i}}</td> <td>{{_i}}string | function{{/i}}</td>
<td>'top'</td> <td>'top'</td>
<td>{{_i}}how to position the tooltip{{/i}} - top | bottom | left | right</td> <td>{{_i}}how to position the tooltip{{/i}} - top | bottom | left | right</td>
</tr> </tr>
@@ -766,8 +766,8 @@ $('a[data-toggle="tab"]').on('shown', function (e) {
<tr> <tr>
<td>{{_i}}trigger{{/i}}</td> <td>{{_i}}trigger{{/i}}</td>
<td>{{_i}}string{{/i}}</td> <td>{{_i}}string{{/i}}</td>
<td>'hover'</td> <td>'hover focus'</td>
<td>{{_i}}how tooltip is triggered{{/i}} - click | hover | focus | manual</td> <td>{{_i}}how tooltip is triggered{{/i}} - click | hover | focus | manual. {{_i}}Note you case pass trigger mutliple, space seperated, trigger types.{{/i}}</td>
</tr> </tr>
<tr> <tr>
<td>{{_i}}delay{{/i}}</td> <td>{{_i}}delay{{/i}}</td>
@@ -779,6 +779,14 @@ $('a[data-toggle="tab"]').on('shown', function (e) {
<p>{{_i}}Object structure is: <code>delay: { show: 500, hide: 100 }</code>{{/i}}</p> <p>{{_i}}Object structure is: <code>delay: { show: 500, hide: 100 }</code>{{/i}}</p>
</td> </td>
</tr> </tr>
<tr>
<td>{{_i}}container{{/i}}</td>
<td>{{_i}}string | false{{/i}}</td>
<td>{{_i}}false{{/i}}</td>
<td>
<p>{{_i}}Appends the tooltip to a specific element <code>container: 'body'</code>{{/i}}</p>
</td>
</tr>
</tbody> </tbody>
</table> </table>
<div class="alert alert-info"> <div class="alert alert-info">
@@ -788,7 +796,7 @@ $('a[data-toggle="tab"]').on('shown', function (e) {
<h3>{{_i}}Markup{{/i}}</h3> <h3>{{_i}}Markup{{/i}}</h3>
<p>{{_i}}For performance reasons, the Tooltip and Popover data-apis are opt in. If you would like to use them just specify a selector option.{{/i}}</p> <p>{{_i}}For performance reasons, the Tooltip and Popover data-apis are opt in. If you would like to use them just specify a selector option.{{/i}}</p>
<pre class="prettyprint linenums">&lt;a href="#" rel="tooltip" title="{{_i}}first tooltip{{/i}}"&gt;{{_i}}hover over me{{/i}}&lt;/a&gt;</pre> <pre class="prettyprint linenums">&lt;a href="#" data-toggle="tooltip" title="{{_i}}first tooltip{{/i}}"&gt;{{_i}}hover over me{{/i}}&lt;/a&gt;</pre>
<h3>{{_i}}Methods{{/i}}</h3> <h3>{{_i}}Methods{{/i}}</h3>
<h4>$().tooltip({{_i}}options{{/i}})</h4> <h4>$().tooltip({{_i}}options{{/i}})</h4>
@@ -860,16 +868,16 @@ $('a[data-toggle="tab"]').on('shown', function (e) {
<h3>Live demo</h3> <h3>Live demo</h3>
<div class="bs-docs-example" style="padding-bottom: 24px;"> <div class="bs-docs-example" style="padding-bottom: 24px;">
<a href="#" class="btn btn-large btn-danger" rel="popover" title="A Title" data-content="And here's some amazing content. It's very engaging. right?">{{_i}}Click to toggle popover{{/i}}</a> <a href="#" class="btn btn-large btn-danger" data-toggle="popover" title="A Title" data-content="And here's some amazing content. It's very engaging. right?">{{_i}}Click to toggle popover{{/i}}</a>
</div> </div>
<h4>{{_i}}Four directions{{/i}}</h4> <h4>{{_i}}Four directions{{/i}}</h4>
<div class="bs-docs-example tooltip-demo"> <div class="bs-docs-example tooltip-demo">
<ul class="bs-docs-tooltip-examples"> <ul class="bs-docs-tooltip-examples">
<li><a href="#" class="btn" rel="popover" data-placement="top" data-content="Vivamus sagittis lacus vel augue laoreet rutrum faucibus." title="Popover on top">Popover on top</a></li> <li><a href="#" class="btn" data-toggle="popover" data-placement="top" data-content="Vivamus sagittis lacus vel augue laoreet rutrum faucibus." title="Popover on top">Popover on top</a></li>
<li><a href="#" class="btn" rel="popover" data-placement="right" data-content="Vivamus sagittis lacus vel augue laoreet rutrum faucibus." title="Popover on right">Popover on right</a></li> <li><a href="#" class="btn" data-toggle="popover" data-placement="right" data-content="Vivamus sagittis lacus vel augue laoreet rutrum faucibus." title="Popover on right">Popover on right</a></li>
<li><a href="#" class="btn" rel="popover" data-placement="bottom" data-content="Vivamus sagittis lacus vel augue laoreet rutrum faucibus." title="Popover on bottom">Popover on bottom</a></li> <li><a href="#" class="btn" data-toggle="popover" data-placement="bottom" data-content="Vivamus sagittis lacus vel augue laoreet rutrum faucibus." title="Popover on bottom">Popover on bottom</a></li>
<li><a href="#" class="btn" rel="popover" data-placement="left" data-content="Vivamus sagittis lacus vel augue laoreet rutrum faucibus." title="Popover on left">Popover on left</a></li> <li><a href="#" class="btn" data-toggle="popover" data-placement="left" data-content="Vivamus sagittis lacus vel augue laoreet rutrum faucibus." title="Popover on left">Popover on left</a></li>
</ul> </ul>
</div>{{! /example }} </div>{{! /example }}
@@ -907,7 +915,7 @@ $('a[data-toggle="tab"]').on('shown', function (e) {
</tr> </tr>
<tr> <tr>
<td>{{_i}}placement{{/i}}</td> <td>{{_i}}placement{{/i}}</td>
<td>{{_i}}string|function{{/i}}</td> <td>{{_i}}string | function{{/i}}</td>
<td>'right'</td> <td>'right'</td>
<td>{{_i}}how to position the popover{{/i}} - top | bottom | left | right</td> <td>{{_i}}how to position the popover{{/i}} - top | bottom | left | right</td>
</tr> </tr>
@@ -1352,6 +1360,11 @@ $('#myCollapsible').on('hidden', function () {
<p>{{_i}}The slideshow below shows a generic plugin and component for cycling through elements like a carousel.{{/i}}</p> <p>{{_i}}The slideshow below shows a generic plugin and component for cycling through elements like a carousel.{{/i}}</p>
<div class="bs-docs-example"> <div class="bs-docs-example">
<div id="myCarousel" class="carousel slide"> <div id="myCarousel" class="carousel slide">
<ol class="carousel-indicators">
<li data-target="#myCarousel" data-slide-to="0" class="active"></li>
<li data-target="#myCarousel" data-slide-to="1"></li>
<li data-target="#myCarousel" data-slide-to="2"></li>
</ol>
<div class="carousel-inner"> <div class="carousel-inner">
<div class="item active"> <div class="item active">
<img src="assets/img/bootstrap-mdo-sfmoma-01.jpg" alt=""> <img src="assets/img/bootstrap-mdo-sfmoma-01.jpg" alt="">
@@ -1381,6 +1394,11 @@ $('#myCollapsible').on('hidden', function () {
</div>{{! /example }} </div>{{! /example }}
<pre class="prettyprint linenums"> <pre class="prettyprint linenums">
&lt;div id="myCarousel" class="carousel slide"&gt; &lt;div id="myCarousel" class="carousel slide"&gt;
&lt;ol class="carousel-indicators"&gt
&lt;li data-target="#myCarousel" data-slide-to="0" class="active"&gt&lt;/li&gt
&lt;li data-target="#myCarousel" data-slide-to="1"&gt&lt;/li&gt
&lt;li data-target="#myCarousel" data-slide-to="2"&gt&lt;/li&gt
&lt;/ol&gt
&lt;!-- {{_i}}Carousel items{{/i}} --&gt; &lt;!-- {{_i}}Carousel items{{/i}} --&gt;
&lt;div class="carousel-inner"&gt; &lt;div class="carousel-inner"&gt;
&lt;div class="active item"&gt;…&lt;/div&gt; &lt;div class="active item"&gt;…&lt;/div&gt;
@@ -1405,14 +1423,14 @@ $('#myCollapsible').on('hidden', function () {
<h2>{{_i}}Usage{{/i}}</h2> <h2>{{_i}}Usage{{/i}}</h2>
<h3>{{_i}}Via data attributes{{/i}}</h3> <h3>{{_i}}Via data attributes{{/i}}</h3>
<p>{{_i}}...{{/i}}</p> <p>{{_i}}Use data attributes to easily control the position of the carousel. <code>data-slide</code> accepts the keywords <code>prev</code> or <code>next</code>, which alters the slide position relative to it's current position. Alternatively, use <code>data-slide-to</code> to pass a raw slide index to the carousel <code>data-slide-to="2"</code>, which jump's the slide position to a particular index beginning with <code>0</code>.{{/i}}</p>
<h3>{{_i}}Via JavaScript{{/i}}</h3> <h3>{{_i}}Via JavaScript{{/i}}</h3>
<p>{{_i}}Call carousel manually with:{{/i}}</p> <p>{{_i}}Call carousel manually with:{{/i}}</p>
<pre class="prettyprint linenums">$('.carousel').carousel()</pre> <pre class="prettyprint linenums">$('.carousel').carousel()</pre>
<h3>{{_i}}Options{{/i}}</h3> <h3>{{_i}}Options{{/i}}</h3>
<p>{{_i}}Options can be passed via data attributes or JavaScript. For data attributes, append the option name to <code>data-</code>, as in <code>data-interval=""</code>.{{/i}}</p> <p>{{_i}}Options can be passed via data attributes or JavaScriptz. For data attributes, append the option name to <code>data-</code>, as in <code>data-interval=""</code>.{{/i}}</p>
<table class="table table-bordered table-striped"> <table class="table table-bordered table-striped">
<thead> <thead>
<tr> <tr>
@@ -1495,7 +1513,7 @@ $('.carousel').carousel({
<input type="text" class="span3" style="margin: 0 auto;" data-provide="typeahead" data-items="4" data-source='["Alabama","Alaska","Arizona","Arkansas","California","Colorado","Connecticut","Delaware","Florida","Georgia","Hawaii","Idaho","Illinois","Indiana","Iowa","Kansas","Kentucky","Louisiana","Maine","Maryland","Massachusetts","Michigan","Minnesota","Mississippi","Missouri","Montana","Nebraska","Nevada","New Hampshire","New Jersey","New Mexico","New York","North Dakota","North Carolina","Ohio","Oklahoma","Oregon","Pennsylvania","Rhode Island","South Carolina","South Dakota","Tennessee","Texas","Utah","Vermont","Virginia","Washington","West Virginia","Wisconsin","Wyoming"]'> <input type="text" class="span3" style="margin: 0 auto;" data-provide="typeahead" data-items="4" data-source='["Alabama","Alaska","Arizona","Arkansas","California","Colorado","Connecticut","Delaware","Florida","Georgia","Hawaii","Idaho","Illinois","Indiana","Iowa","Kansas","Kentucky","Louisiana","Maine","Maryland","Massachusetts","Michigan","Minnesota","Mississippi","Missouri","Montana","Nebraska","Nevada","New Hampshire","New Jersey","New Mexico","New York","North Dakota","North Carolina","Ohio","Oklahoma","Oregon","Pennsylvania","Rhode Island","South Carolina","South Dakota","Tennessee","Texas","Utah","Vermont","Virginia","Washington","West Virginia","Wisconsin","Wyoming"]'>
</div>{{! /example }} </div>{{! /example }}
<pre class="prettyprint linenums">&lt;input type="text" data-provide="typeahead"&gt;</pre> <pre class="prettyprint linenums">&lt;input type="text" data-provide="typeahead"&gt;</pre>
<p>You'll want to set <code>autocomplete="off"</code> to prevent default browser menus from appearing over the Bootstrap typeahead dropdown.</p>
<hr class="bs-docs-separator"> <hr class="bs-docs-separator">
@@ -1601,14 +1619,6 @@ $('.carousel').carousel({
<p>{{_i}}Call the affix plugin via JavaScript:{{/i}}</p> <p>{{_i}}Call the affix plugin via JavaScript:{{/i}}</p>
<pre class="prettyprint linenums">$('#navbar').affix()</pre> <pre class="prettyprint linenums">$('#navbar').affix()</pre>
<h3>{{_i}}Methods{{/i}}</h3>
<h4>.affix('refresh')</h4>
<p>{{_i}}When using affix in conjunction with adding or removing of elements from the DOM, you'll want to call the refresh method:{{/i}}</p>
<pre class="prettyprint linenums">
$('[data-spy="affix"]').each(function () {
$(this).affix('refresh')
});
</pre>
<h3>{{_i}}Options{{/i}}</h3> <h3>{{_i}}Options{{/i}}</h3>
<p>{{_i}}Options can be passed via data attributes or JavaScript. For data attributes, append the option name to <code>data-</code>, as in <code>data-offset-top="200"</code>.{{/i}}</p> <p>{{_i}}Options can be passed via data attributes or JavaScript. For data attributes, append the option name to <code>data-</code>, as in <code>data-offset-top="200"</code>.{{/i}}</p>
<table class="table table-bordered table-striped"> <table class="table table-bordered table-striped">
+1 -1
View File
@@ -1,5 +1,5 @@
/* ========================================================== /* ==========================================================
* bootstrap-affix.js v2.2.2 * bootstrap-affix.js v2.3.0
* http://twitter.github.com/bootstrap/javascript.html#affix * http://twitter.github.com/bootstrap/javascript.html#affix
* ========================================================== * ==========================================================
* Copyright 2012 Twitter, Inc. * Copyright 2012 Twitter, Inc.
+1 -1
View File
@@ -1,5 +1,5 @@
/* ========================================================== /* ==========================================================
* bootstrap-alert.js v2.2.2 * bootstrap-alert.js v2.3.0
* http://twitter.github.com/bootstrap/javascript.html#alerts * http://twitter.github.com/bootstrap/javascript.html#alerts
* ========================================================== * ==========================================================
* Copyright 2012 Twitter, Inc. * Copyright 2012 Twitter, Inc.
+1 -1
View File
@@ -1,5 +1,5 @@
/* ============================================================ /* ============================================================
* bootstrap-button.js v2.2.2 * bootstrap-button.js v2.3.0
* http://twitter.github.com/bootstrap/javascript.html#buttons * http://twitter.github.com/bootstrap/javascript.html#buttons
* ============================================================ * ============================================================
* Copyright 2012 Twitter, Inc. * Copyright 2012 Twitter, Inc.
+30 -9
View File
@@ -1,5 +1,5 @@
/* ========================================================== /* ==========================================================
* bootstrap-carousel.js v2.2.2 * bootstrap-carousel.js v2.3.0
* http://twitter.github.com/bootstrap/javascript.html#carousel * http://twitter.github.com/bootstrap/javascript.html#carousel
* ========================================================== * ==========================================================
* Copyright 2012 Twitter, Inc. * Copyright 2012 Twitter, Inc.
@@ -28,6 +28,7 @@
var Carousel = function (element, options) { var Carousel = function (element, options) {
this.$element = $(element) this.$element = $(element)
this.$indicators = this.$element.find('.carousel-indicators')
this.options = options this.options = options
this.options.pause == 'hover' && this.$element this.options.pause == 'hover' && this.$element
.on('mouseenter', $.proxy(this.pause, this)) .on('mouseenter', $.proxy(this.pause, this))
@@ -44,13 +45,17 @@
return this return this
} }
, getActiveIndex: function () {
this.$active = this.$element.find('.item.active')
this.$items = this.$active.parent().children()
return this.$items.index(this.$active)
}
, to: function (pos) { , to: function (pos) {
var $active = this.$element.find('.item.active') var activeIndex = this.getActiveIndex()
, children = $active.parent().children()
, activePos = children.index($active)
, that = this , that = this
if (pos > (children.length - 1) || pos < 0) return if (pos > (this.$items.length - 1) || pos < 0) return
if (this.sliding) { if (this.sliding) {
return this.$element.one('slid', function () { return this.$element.one('slid', function () {
@@ -58,11 +63,11 @@
}) })
} }
if (activePos == pos) { if (activeIndex == pos) {
return this.pause().cycle() return this.pause().cycle()
} }
return this.slide(pos > activePos ? 'next' : 'prev', $(children[pos])) return this.slide(pos > activeIndex ? 'next' : 'prev', $(this.$items[pos]))
} }
, pause: function (e) { , pause: function (e) {
@@ -103,10 +108,19 @@
e = $.Event('slide', { e = $.Event('slide', {
relatedTarget: $next[0] relatedTarget: $next[0]
, direction: direction
}) })
if ($next.hasClass('active')) return if ($next.hasClass('active')) return
if (this.$indicators.length) {
this.$indicators.find('.active').removeClass('active')
this.$element.one('slid', function () {
var $nextIndicator = $(that.$indicators.children()[that.getActiveIndex()])
$nextIndicator && $nextIndicator.addClass('active')
})
}
if ($.support.transition && this.$element.hasClass('slide')) { if ($.support.transition && this.$element.hasClass('slide')) {
this.$element.trigger(e) this.$element.trigger(e)
if (e.isDefaultPrevented()) return if (e.isDefaultPrevented()) return
@@ -151,7 +165,7 @@
if (!data) $this.data('carousel', (data = new Carousel(this, options))) if (!data) $this.data('carousel', (data = new Carousel(this, options)))
if (typeof option == 'number') data.to(option) if (typeof option == 'number') data.to(option)
else if (action) data[action]() else if (action) data[action]()
else if (options.interval) data.cycle() else if (options.interval) data.pause().cycle()
}) })
} }
@@ -174,11 +188,18 @@
/* CAROUSEL DATA-API /* CAROUSEL DATA-API
* ================= */ * ================= */
$(document).on('click.carousel.data-api', '[data-slide]', function (e) { $(document).on('click.carousel.data-api', '[data-slide], [data-slide-to]', function (e) {
var $this = $(this), href var $this = $(this), href
, $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7 , $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7
, options = $.extend({}, $target.data(), $this.data()) , options = $.extend({}, $target.data(), $this.data())
, slideIndex
$target.carousel(options) $target.carousel(options)
if (slideIndex = $this.attr('data-slide-to')) {
$target.data('carousel').pause().to(slideIndex).cycle()
}
e.preventDefault() e.preventDefault()
}) })
+3 -3
View File
@@ -1,5 +1,5 @@
/* ============================================================= /* =============================================================
* bootstrap-collapse.js v2.2.2 * bootstrap-collapse.js v2.3.0
* http://twitter.github.com/bootstrap/javascript.html#collapse * http://twitter.github.com/bootstrap/javascript.html#collapse
* ============================================================= * =============================================================
* Copyright 2012 Twitter, Inc. * Copyright 2012 Twitter, Inc.
@@ -52,7 +52,7 @@
, actives , actives
, hasData , hasData
if (this.transitioning) return if (this.transitioning || this.$element.hasClass('in')) return
dimension = this.dimension() dimension = this.dimension()
scroll = $.camelCase(['scroll', dimension].join('-')) scroll = $.camelCase(['scroll', dimension].join('-'))
@@ -129,7 +129,7 @@
return this.each(function () { return this.each(function () {
var $this = $(this) var $this = $(this)
, data = $this.data('collapse') , data = $this.data('collapse')
, options = typeof option == 'object' && option , options = $.extend({}, $.fn.collapse.defaults, $this.data(), typeof option == 'object' && option)
if (!data) $this.data('collapse', (data = new Collapse(this, options))) if (!data) $this.data('collapse', (data = new Collapse(this, options)))
if (typeof option == 'string') data[option]() if (typeof option == 'string') data[option]()
}) })
+9 -5
View File
@@ -1,5 +1,5 @@
/* ============================================================ /* ============================================================
* bootstrap-dropdown.js v2.2.2 * bootstrap-dropdown.js v2.3.0
* http://twitter.github.com/bootstrap/javascript.html#dropdowns * http://twitter.github.com/bootstrap/javascript.html#dropdowns
* ============================================================ * ============================================================
* Copyright 2012 Twitter, Inc. * Copyright 2012 Twitter, Inc.
@@ -81,7 +81,10 @@
isActive = $parent.hasClass('open') isActive = $parent.hasClass('open')
if (!isActive || (isActive && e.keyCode == 27)) return $this.click() if (!isActive || (isActive && e.keyCode == 27)) {
if (e.which == 27) $parent.find(toggle).focus()
return $this.click()
}
$items = $('[role=menu] li:not(.divider):visible a', $parent) $items = $('[role=menu] li:not(.divider):visible a', $parent)
@@ -115,8 +118,9 @@
selector = selector && /#/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7 selector = selector && /#/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
} }
$parent = $(selector) $parent = selector && $(selector)
$parent.length || ($parent = $this.parent())
if (!$parent || !$parent.length) $parent = $this.parent()
return $parent return $parent
} }
@@ -153,7 +157,7 @@
$(document) $(document)
.on('click.dropdown.data-api touchstart.dropdown.data-api', clearMenus) .on('click.dropdown.data-api touchstart.dropdown.data-api', clearMenus)
.on('click.dropdown touchstart.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() }) .on('click.dropdown.data-api touchstart.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })
.on('touchstart.dropdown.data-api', '.dropdown-menu', function (e) { e.stopPropagation() }) .on('touchstart.dropdown.data-api', '.dropdown-menu', function (e) { e.stopPropagation() })
.on('click.dropdown.data-api touchstart.dropdown.data-api' , toggle, Dropdown.prototype.toggle) .on('click.dropdown.data-api touchstart.dropdown.data-api' , toggle, Dropdown.prototype.toggle)
.on('keydown.dropdown.data-api touchstart.dropdown.data-api', toggle + ', [role=menu]' , Dropdown.prototype.keydown) .on('keydown.dropdown.data-api touchstart.dropdown.data-api', toggle + ', [role=menu]' , Dropdown.prototype.keydown)
+2 -3
View File
@@ -1,5 +1,5 @@
/* ========================================================= /* =========================================================
* bootstrap-modal.js v2.2.2 * bootstrap-modal.js v2.3.0
* http://twitter.github.com/bootstrap/javascript.html#modals * http://twitter.github.com/bootstrap/javascript.html#modals
* ========================================================= * =========================================================
* Copyright 2012 Twitter, Inc. * Copyright 2012 Twitter, Inc.
@@ -60,8 +60,7 @@
that.$element.appendTo(document.body) //don't move modals dom position that.$element.appendTo(document.body) //don't move modals dom position
} }
that.$element that.$element.show()
.show()
if (transition) { if (transition) {
that.$element[0].offsetWidth // force reflow that.$element[0].offsetWidth // force reflow
+1 -1
View File
@@ -1,5 +1,5 @@
/* =========================================================== /* ===========================================================
* bootstrap-popover.js v2.2.2 * bootstrap-popover.js v2.3.0
* http://twitter.github.com/bootstrap/javascript.html#popovers * http://twitter.github.com/bootstrap/javascript.html#popovers
* =========================================================== * ===========================================================
* Copyright 2012 Twitter, Inc. * Copyright 2012 Twitter, Inc.
+2 -2
View File
@@ -1,5 +1,5 @@
/* ============================================================= /* =============================================================
* bootstrap-scrollspy.js v2.2.2 * bootstrap-scrollspy.js v2.3.0
* http://twitter.github.com/bootstrap/javascript.html#scrollspy * http://twitter.github.com/bootstrap/javascript.html#scrollspy
* ============================================================= * =============================================================
* Copyright 2012 Twitter, Inc. * Copyright 2012 Twitter, Inc.
@@ -59,7 +59,7 @@
, $href = /^#\w/.test(href) && $(href) , $href = /^#\w/.test(href) && $(href)
return ( $href return ( $href
&& $href.length && $href.length
&& [[ $href.position().top + self.$scrollElement.scrollTop(), href ]] ) || null && [[ $href.position().top + (!$.isWindow(self.$scrollElement.get(0)) && self.$scrollElement.scrollTop()), href ]] ) || null
}) })
.sort(function (a, b) { return a[0] - b[0] }) .sort(function (a, b) { return a[0] - b[0] })
.each(function () { .each(function () {
+1 -1
View File
@@ -1,5 +1,5 @@
/* ======================================================== /* ========================================================
* bootstrap-tab.js v2.2.2 * bootstrap-tab.js v2.3.0
* http://twitter.github.com/bootstrap/javascript.html#tabs * http://twitter.github.com/bootstrap/javascript.html#tabs
* ======================================================== * ========================================================
* Copyright 2012 Twitter, Inc. * Copyright 2012 Twitter, Inc.
+42 -23
View File
@@ -1,5 +1,5 @@
/* =========================================================== /* ===========================================================
* bootstrap-tooltip.js v2.2.2 * bootstrap-tooltip.js v2.3.0
* http://twitter.github.com/bootstrap/javascript.html#tooltips * http://twitter.github.com/bootstrap/javascript.html#tooltips
* Inspired by the original jQuery.tipsy by Jason Frame * Inspired by the original jQuery.tipsy by Jason Frame
* =========================================================== * ===========================================================
@@ -38,19 +38,27 @@
, init: function (type, element, options) { , init: function (type, element, options) {
var eventIn var eventIn
, eventOut , eventOut
, triggers
, trigger
, i
this.type = type this.type = type
this.$element = $(element) this.$element = $(element)
this.options = this.getOptions(options) this.options = this.getOptions(options)
this.enabled = true this.enabled = true
if (this.options.trigger == 'click') { triggers = this.options.trigger.split(' ')
this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this))
} else if (this.options.trigger != 'manual') { for (i = triggers.length; i--;) {
eventIn = this.options.trigger == 'hover' ? 'mouseenter' : 'focus' trigger = triggers[i]
eventOut = this.options.trigger == 'hover' ? 'mouseleave' : 'blur' if (trigger == 'click') {
this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this)) this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this))
this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this)) } else if (trigger != 'manual') {
eventIn = trigger == 'hover' ? 'mouseenter' : 'focus'
eventOut = trigger == 'hover' ? 'mouseleave' : 'blur'
this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this))
this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this))
}
} }
this.options.selector ? this.options.selector ?
@@ -97,14 +105,16 @@
, show: function () { , show: function () {
var $tip var $tip
, inside
, pos , pos
, actualWidth , actualWidth
, actualHeight , actualHeight
, placement , placement
, tp , tp
, e = $.Event('show')
if (this.hasContent() && this.enabled) { if (this.hasContent() && this.enabled) {
this.$element.trigger(e)
if (e.isDefaultPrevented()) return
$tip = this.tip() $tip = this.tip()
this.setContent() this.setContent()
@@ -116,19 +126,18 @@
this.options.placement.call(this, $tip[0], this.$element[0]) : this.options.placement.call(this, $tip[0], this.$element[0]) :
this.options.placement this.options.placement
inside = /in/.test(placement)
$tip $tip
.detach() .detach()
.css({ top: 0, left: 0, display: 'block' }) .css({ top: 0, left: 0, display: 'block' })
.insertAfter(this.$element)
pos = this.getPosition(inside) this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element)
pos = this.getPosition()
actualWidth = $tip[0].offsetWidth actualWidth = $tip[0].offsetWidth
actualHeight = $tip[0].offsetHeight actualHeight = $tip[0].offsetHeight
switch (inside ? placement.split(' ')[1] : placement) { switch (placement) {
case 'bottom': case 'bottom':
tp = {top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2} tp = {top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2}
break break
@@ -147,6 +156,8 @@
.offset(tp) .offset(tp)
.addClass(placement) .addClass(placement)
.addClass('in') .addClass('in')
this.$element.trigger('shown')
} }
} }
@@ -161,6 +172,10 @@
, hide: function () { , hide: function () {
var that = this var that = this
, $tip = this.tip() , $tip = this.tip()
, e = $.Event('hide')
this.$element.trigger(e)
if (e.isDefaultPrevented()) return
$tip.removeClass('in') $tip.removeClass('in')
@@ -179,6 +194,8 @@
removeWithAnimation() : removeWithAnimation() :
$tip.detach() $tip.detach()
this.$element.trigger('hidden')
return this return this
} }
@@ -193,11 +210,12 @@
return this.getTitle() return this.getTitle()
} }
, getPosition: function (inside) { , getPosition: function () {
return $.extend({}, (inside ? {top: 0, left: 0} : this.$element.offset()), { var el = this.$element[0]
width: this.$element[0].offsetWidth return $.extend({}, el.getBoundingClientRect ? el.getBoundingClientRect() : {
, height: this.$element[0].offsetHeight width: el.offsetWidth
}) , height: el.offsetHeight
}, this.$element.offset())
} }
, getTitle: function () { , getTitle: function () {
@@ -236,8 +254,8 @@
} }
, toggle: function (e) { , toggle: function (e) {
var self = $(e.currentTarget)[this.type](this._options).data(this.type) var self = e ? $(e.currentTarget)[this.type](this._options).data(this.type) : this
self[self.tip().hasClass('in') ? 'hide' : 'show']() self.tip().hasClass('in') ? self.hide() : self.show()
} }
, destroy: function () { , destroy: function () {
@@ -269,10 +287,11 @@
, placement: 'top' , placement: 'top'
, selector: false , selector: false
, template: '<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>' , template: '<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>'
, trigger: 'hover' , trigger: 'hover focus'
, title: '' , title: ''
, delay: 0 , delay: 0
, html: false , html: false
, container: false
} }
@@ -284,4 +303,4 @@
return this return this
} }
}(window.jQuery); }(window.jQuery);
+1 -1
View File
@@ -1,5 +1,5 @@
/* =================================================== /* ===================================================
* bootstrap-transition.js v2.2.2 * bootstrap-transition.js v2.3.0
* http://twitter.github.com/bootstrap/javascript.html#transitions * http://twitter.github.com/bootstrap/javascript.html#transitions
* =================================================== * ===================================================
* Copyright 2012 Twitter, Inc. * Copyright 2012 Twitter, Inc.
+16 -3
View File
@@ -1,5 +1,5 @@
/* ============================================================= /* =============================================================
* bootstrap-typeahead.js v2.2.2 * bootstrap-typeahead.js v2.3.0
* http://twitter.github.com/bootstrap/javascript.html#typeahead * http://twitter.github.com/bootstrap/javascript.html#typeahead
* ============================================================= * =============================================================
* Copyright 2012 Twitter, Inc. * Copyright 2012 Twitter, Inc.
@@ -172,6 +172,7 @@
, listen: function () { , listen: function () {
this.$element this.$element
.on('focus', $.proxy(this.focus, this))
.on('blur', $.proxy(this.blur, this)) .on('blur', $.proxy(this.blur, this))
.on('keypress', $.proxy(this.keypress, this)) .on('keypress', $.proxy(this.keypress, this))
.on('keyup', $.proxy(this.keyup, this)) .on('keyup', $.proxy(this.keyup, this))
@@ -183,6 +184,7 @@
this.$menu this.$menu
.on('click', $.proxy(this.click, this)) .on('click', $.proxy(this.click, this))
.on('mouseenter', 'li', $.proxy(this.mouseenter, this)) .on('mouseenter', 'li', $.proxy(this.mouseenter, this))
.on('mouseleave', 'li', $.proxy(this.mouseleave, this))
} }
, eventSupported: function(eventName) { , eventSupported: function(eventName) {
@@ -256,22 +258,33 @@
e.preventDefault() e.preventDefault()
} }
, focus: function (e) {
this.focused = true
}
, blur: function (e) { , blur: function (e) {
var that = this this.focused = false
setTimeout(function () { that.hide() }, 150) if (!this.mousedover && this.shown) this.hide()
} }
, click: function (e) { , click: function (e) {
e.stopPropagation() e.stopPropagation()
e.preventDefault() e.preventDefault()
this.select() this.select()
this.$element.focus()
} }
, mouseenter: function (e) { , mouseenter: function (e) {
this.mousedover = true
this.$menu.find('.active').removeClass('active') this.$menu.find('.active').removeClass('active')
$(e.currentTarget).addClass('active') $(e.currentTarget).addClass('active')
} }
, mouseleave: function (e) {
this.mousedover = false
if (!this.focused && this.shown) this.hide()
}
} }
+12
View File
@@ -31,6 +31,18 @@ $(function () {
.carousel('next') .carousel('next')
}) })
test("should fire slide event with direction", function () {
var template = '<div id="myCarousel" class="carousel slide"><div class="carousel-inner"><div class="item active"><img alt=""><div class="carousel-caption"><h4>{{_i}}First Thumbnail label{{/i}}</h4><p>Cras justo odio, dapibus ac facilisis in, egestas eget quam. Donec id elit non mi porta gravida at eget metus. Nullam id dolor id nibh ultricies vehicula ut id elit.</p></div></div><div class="item"><img alt=""><div class="carousel-caption"><h4>{{_i}}Second Thumbnail label{{/i}}</h4><p>Cras justo odio, dapibus ac facilisis in, egestas eget quam. Donec id elit non mi porta gravida at eget metus. Nullam id dolor id nibh ultricies vehicula ut id elit.</p></div></div><div class="item"><img alt=""><div class="carousel-caption"><h4>{{_i}}Third Thumbnail label{{/i}}</h4><p>Cras justo odio, dapibus ac facilisis in, egestas eget quam. Donec id elit non mi porta gravida at eget metus. Nullam id dolor id nibh ultricies vehicula ut id elit.</p></div></div></div><a class="left carousel-control" href="#myCarousel" data-slide="prev">&lsaquo;</a><a class="right carousel-control" href="#myCarousel" data-slide="next">&rsaquo;</a></div>'
$.support.transition = false
stop()
$(template).on('slide', function (e) {
e.preventDefault()
ok(e.direction)
ok(e.direction === 'right' || e.direction === 'left')
start()
}).carousel('next')
})
test("should fire slide event with relatedTarget", function () { test("should fire slide event with relatedTarget", function () {
var template = '<div id="myCarousel" class="carousel slide"><div class="carousel-inner"><div class="item active"><img alt=""><div class="carousel-caption"><h4>{{_i}}First Thumbnail label{{/i}}</h4><p>Cras justo odio, dapibus ac facilisis in, egestas eget quam. Donec id elit non mi porta gravida at eget metus. Nullam id dolor id nibh ultricies vehicula ut id elit.</p></div></div><div class="item"><img alt=""><div class="carousel-caption"><h4>{{_i}}Second Thumbnail label{{/i}}</h4><p>Cras justo odio, dapibus ac facilisis in, egestas eget quam. Donec id elit non mi porta gravida at eget metus. Nullam id dolor id nibh ultricies vehicula ut id elit.</p></div></div><div class="item"><img alt=""><div class="carousel-caption"><h4>{{_i}}Third Thumbnail label{{/i}}</h4><p>Cras justo odio, dapibus ac facilisis in, egestas eget quam. Donec id elit non mi porta gravida at eget metus. Nullam id dolor id nibh ultricies vehicula ut id elit.</p></div></div></div><a class="left carousel-control" href="#myCarousel" data-slide="prev">&lsaquo;</a><a class="right carousel-control" href="#myCarousel" data-slide="next">&rsaquo;</a></div>' var template = '<div id="myCarousel" class="carousel slide"><div class="carousel-inner"><div class="item active"><img alt=""><div class="carousel-caption"><h4>{{_i}}First Thumbnail label{{/i}}</h4><p>Cras justo odio, dapibus ac facilisis in, egestas eget quam. Donec id elit non mi porta gravida at eget metus. Nullam id dolor id nibh ultricies vehicula ut id elit.</p></div></div><div class="item"><img alt=""><div class="carousel-caption"><h4>{{_i}}Second Thumbnail label{{/i}}</h4><p>Cras justo odio, dapibus ac facilisis in, egestas eget quam. Donec id elit non mi porta gravida at eget metus. Nullam id dolor id nibh ultricies vehicula ut id elit.</p></div></div><div class="item"><img alt=""><div class="carousel-caption"><h4>{{_i}}Third Thumbnail label{{/i}}</h4><p>Cras justo odio, dapibus ac facilisis in, egestas eget quam. Donec id elit non mi porta gravida at eget metus. Nullam id dolor id nibh ultricies vehicula ut id elit.</p></div></div></div><a class="left carousel-control" href="#myCarousel" data-slide="prev">&lsaquo;</a><a class="right carousel-control" href="#myCarousel" data-slide="next">&rsaquo;</a></div>'
$.support.transition = false $.support.transition = false
+96 -1
View File
@@ -66,6 +66,83 @@ $(function () {
ok(!$(".tooltip").length, 'tooltip removed') ok(!$(".tooltip").length, 'tooltip removed')
}) })
test("should fire show event", function () {
stop()
var tooltip = $('<div title="tooltip title"></div>')
.bind("show", function() {
ok(true, "show was called")
start()
})
.tooltip('show')
})
test("should fire shown event", function () {
stop()
var tooltip = $('<div title="tooltip title"></div>')
.bind("shown", function() {
ok(true, "shown was called")
start()
})
.tooltip('show')
})
test("should not fire shown event when default prevented", function () {
stop()
var tooltip = $('<div title="tooltip title"></div>')
.bind("show", function(e) {
e.preventDefault()
ok(true, "show was called")
start()
})
.bind("shown", function() {
ok(false, "shown was called")
})
.tooltip('show')
})
test("should fire hide event", function () {
stop()
var tooltip = $('<div title="tooltip title"></div>')
.bind("shown", function() {
$(this).tooltip('hide')
})
.bind("hide", function() {
ok(true, "hide was called")
start()
})
.tooltip('show')
})
test("should fire hidden event", function () {
stop()
var tooltip = $('<div title="tooltip title"></div>')
.bind("shown", function() {
$(this).tooltip('hide')
})
.bind("hidden", function() {
ok(true, "hidden was called")
start()
})
.tooltip('show')
})
test("should not fire hidden event when default prevented", function () {
stop()
var tooltip = $('<div title="tooltip title"></div>')
.bind("shown", function() {
$(this).tooltip('hide')
})
.bind("hide", function(e) {
e.preventDefault()
ok(true, "hide was called")
start()
})
.bind("hidden", function() {
ok(false, "hidden was called")
})
.tooltip('show')
})
test("should not show tooltip if leave event occurs before delay expires", function () { test("should not show tooltip if leave event occurs before delay expires", function () {
var tooltip = $('<a href="#" rel="tooltip" title="Another tooltip"></a>') var tooltip = $('<a href="#" rel="tooltip" title="Another tooltip"></a>')
.appendTo('#qunit-fixture') .appendTo('#qunit-fixture')
@@ -156,4 +233,22 @@ $(function () {
div.find('a').trigger('click') div.find('a').trigger('click')
ok($(".tooltip").is('.fade.in'), 'tooltip is faded in') ok($(".tooltip").is('.fade.in'), 'tooltip is faded in')
}) })
})
test("should show tooltip when toggle is called", function () {
var tooltip = $('<a href="#" rel="tooltip" title="tooltip on toggle"></a>')
.appendTo('#qunit-fixture')
.tooltip({trigger: 'manual'})
.tooltip('toggle')
ok($(".tooltip").is('.fade.in'), 'tooltip should be toggled in')
})
test("should place tooltips inside the body", function () {
var tooltip = $('<a href="#" rel="tooltip" title="Another tooltip"></a>')
.appendTo('#qunit-fixture')
.tooltip({container:'body'})
.tooltip('show')
ok($("body > .tooltip").length, 'inside the body')
ok(!$("#qunit-fixture > .tooltip").length, 'not found in parent')
tooltip.tooltip('hide')
})
})
+5
View File
@@ -192,17 +192,22 @@ $(function () {
}).appendTo('body') }).appendTo('body')
, typeahead = $input.data('typeahead') , typeahead = $input.data('typeahead')
, changed = false , changed = false
, focus = false
, blur = false
$input.val('a') $input.val('a')
typeahead.lookup() typeahead.lookup()
$input.change(function() { changed = true }); $input.change(function() { changed = true });
$input.focus(function() { focus = true; blur = false });
$input.blur(function() { blur = true; focus = false });
$(typeahead.$menu.find('li')[2]).mouseover().click() $(typeahead.$menu.find('li')[2]).mouseover().click()
equals($input.val(), 'ac', 'input value was correctly set') equals($input.val(), 'ac', 'input value was correctly set')
ok(!typeahead.$menu.is(':visible'), 'the menu was hidden') ok(!typeahead.$menu.is(':visible'), 'the menu was hidden')
ok(changed, 'a change event was fired') ok(changed, 'a change event was fired')
ok(focus && !blur, 'focus is still set')
$input.remove() $input.remove()
typeahead.$menu.remove() typeahead.$menu.remove()
+4 -4
View File
@@ -1,5 +1,5 @@
/*! /*!
* Bootstrap v2.2.2 * Bootstrap v2.3.0
* *
* Copyright 2012 Twitter, Inc * Copyright 2012 Twitter, Inc
* Licensed under the Apache License v2.0 * Licensed under the Apache License v2.0
@@ -8,13 +8,13 @@
* Designed and built with all the love in the world @twitter by @mdo and @fat. * Designed and built with all the love in the world @twitter by @mdo and @fat.
*/ */
// CSS Reset
@import "reset.less";
// Core variables and mixins // Core variables and mixins
@import "variables.less"; // Modify this for custom colors, font-sizes, etc @import "variables.less"; // Modify this for custom colors, font-sizes, etc
@import "mixins.less"; @import "mixins.less";
// CSS Reset
@import "reset.less";
// Grid system and page structure // Grid system and page structure
@import "scaffolding.less"; @import "scaffolding.less";
@import "grid.less"; @import "grid.less";
+4 -2
View File
@@ -164,8 +164,6 @@
margin-left: 0; margin-left: 0;
} }
// Carets in other button sizes // Carets in other button sizes
.btn-mini .caret,
.btn-small .caret,
.btn-large .caret { .btn-large .caret {
margin-top: 6px; margin-top: 6px;
} }
@@ -174,6 +172,10 @@
border-right-width: 5px; border-right-width: 5px;
border-top-width: 5px; border-top-width: 5px;
} }
.btn-mini .caret,
.btn-small .caret {
margin-top: 8px;
}
// Upside down carets for .dropup // Upside down carets for .dropup
.dropup .btn-large .caret { .dropup .btn-large .caret {
border-bottom-width: 5px; border-bottom-width: 5px;
+25
View File
@@ -105,6 +105,31 @@
} }
} }
// Carousel indicator pips
// -----------------------------
.carousel-indicators {
position: absolute;
top: 15px;
right: 15px;
z-index: 5;
margin: 0;
list-style: none;
li {
display: block;
float: left;
width: 10px;
height: 10px;
margin-left: 5px;
text-indent: -999px;
background-color: #ccc;
background-color: rgba(255,255,255,.25);
border-radius: 5px;
}
.active {
background-color: #fff;
}
}
// Caption for text below images // Caption for text below images
// ----------------------------- // -----------------------------
+8 -8
View File
@@ -72,7 +72,7 @@
} }
// Links within the dropdown menu // Links within the dropdown menu
li > a { > li > a {
display: block; display: block;
padding: 3px 20px; padding: 3px 20px;
clear: both; clear: both;
@@ -85,8 +85,8 @@
// Hover state // Hover state
// ----------- // -----------
.dropdown-menu li > a:hover, .dropdown-menu > li > a:hover,
.dropdown-menu li > a:focus, .dropdown-menu > li > a:focus,
.dropdown-submenu:hover > a { .dropdown-submenu:hover > a {
text-decoration: none; text-decoration: none;
color: @dropdownLinkColorHover; color: @dropdownLinkColorHover;
@@ -95,8 +95,8 @@
// Active state // Active state
// ------------ // ------------
.dropdown-menu .active > a, .dropdown-menu > .active > a,
.dropdown-menu .active > a:hover { .dropdown-menu > .active > a:hover {
color: @dropdownLinkColorActive; color: @dropdownLinkColorActive;
text-decoration: none; text-decoration: none;
outline: 0; outline: 0;
@@ -106,12 +106,12 @@
// Disabled state // Disabled state
// -------------- // --------------
// Gray out text and ensure the hover state remains gray // Gray out text and ensure the hover state remains gray
.dropdown-menu .disabled > a, .dropdown-menu > .disabled > a,
.dropdown-menu .disabled > a:hover { .dropdown-menu > .disabled > a:hover {
color: @grayLight; color: @grayLight;
} }
// Nuke hover effects // Nuke hover effects
.dropdown-menu .disabled > a:hover { .dropdown-menu > .disabled > a:hover {
text-decoration: none; text-decoration: none;
background-color: transparent; background-color: transparent;
background-image: none; // Remove CSS gradient background-image: none; // Remove CSS gradient
+2 -1
View File
@@ -430,7 +430,8 @@ select:focus:invalid {
input, input,
select, select,
.uneditable-input, .uneditable-input,
.dropdown-menu { .dropdown-menu,
.popover {
font-size: @baseFontSize; font-size: @baseFontSize;
} }
+2 -2
View File
@@ -37,10 +37,10 @@
// Media image alignment // Media image alignment
// ------------------------- // -------------------------
.media .pull-left { .media > .pull-left {
margin-right: 10px; margin-right: 10px;
} }
.media .pull-right { .media > .pull-right {
margin-left: 10px; margin-left: 10px;
} }
+6
View File
@@ -268,6 +268,12 @@
-o-transition-delay: @transition-delay; -o-transition-delay: @transition-delay;
transition-delay: @transition-delay; transition-delay: @transition-delay;
} }
.transition-duration(@transition-duration) {
-webkit-transition-duration: @transition-duration;
-moz-transition-duration: @transition-duration;
-o-transition-duration: @transition-duration;
transition-duration: @transition-duration;
}
// Transformations // Transformations
.rotate(@degrees) { .rotate(@degrees) {
-1
View File
@@ -245,7 +245,6 @@
} }
.navbar .nav .dropdown-toggle .caret { .navbar .nav .dropdown-toggle .caret {
margin-top: 8px; margin-top: 8px;
} }
// Hover // Hover
+5 -1
View File
@@ -9,7 +9,7 @@
left: 0; left: 0;
z-index: @zindexPopover; z-index: @zindexPopover;
display: none; display: none;
width: 236px; max-width: 276px;
padding: 1px; padding: 1px;
text-align: left; // Reset given new insertion method text-align: left; // Reset given new insertion method
background-color: @popoverBackground; background-color: @popoverBackground;
@@ -40,6 +40,10 @@
background-color: @popoverTitleBackground; background-color: @popoverTitleBackground;
border-bottom: 1px solid darken(@popoverTitleBackground, 5%); border-bottom: 1px solid darken(@popoverTitleBackground, 5%);
.border-radius(5px 5px 0 0); .border-radius(5px 5px 0 0);
&:empty {
display: none;
}
} }
.popover-content { .popover-content {
+7
View File
@@ -3,6 +3,13 @@
// -------------------------------------------------- // --------------------------------------------------
// IE10 Metro responsive
// Required for Windows 8 Metro split-screen snapping with IE10
// Source: http://timkadlec.com/2012/10/ie10-snap-mode-and-responsive-design/
@-ms-viewport{
width: device-width;
}
// Hide from screenreaders and browsers // Hide from screenreaders and browsers
// Credit: HTML5 Boilerplate // Credit: HTML5 Boilerplate
.hidden { .hidden {
+1 -10
View File
@@ -1,5 +1,5 @@
/*! /*!
* Bootstrap Responsive v2.2.2 * Bootstrap Responsive v2.3.0
* *
* Copyright 2012 Twitter, Inc * Copyright 2012 Twitter, Inc
* Licensed under the Apache License v2.0 * Licensed under the Apache License v2.0
@@ -14,15 +14,6 @@
// ------------------------------------------------------------- // -------------------------------------------------------------
// IE10 Metro responsive
// Required for Windows 8 Metro split-screen snapping with IE10
// Source: http://timkadlec.com/2012/10/ie10-snap-mode-and-responsive-design/
@-ms-viewport{
width: device-width;
}
// REPEAT VARIABLES & MIXINS // REPEAT VARIABLES & MIXINS
// ------------------------- // -------------------------
// Required since we compile the responsive stuff separately // Required since we compile the responsive stuff separately
+2 -1
View File
@@ -11,6 +11,7 @@
visibility: visible; visibility: visible;
padding: 5px; padding: 5px;
font-size: 11px; font-size: 11px;
line-height: 1.4;
.opacity(0); .opacity(0);
&.in { .opacity(80); } &.in { .opacity(80); }
&.top { margin-top: -3px; } &.top { margin-top: -3px; }
@@ -22,7 +23,7 @@
// Wrapper for the tooltip content // Wrapper for the tooltip content
.tooltip-inner { .tooltip-inner {
max-width: 200px; max-width: 200px;
padding: 3px 8px; padding: 8px;
color: @tooltipColor; color: @tooltipColor;
text-align: center; text-align: center;
text-decoration: none; text-decoration: none;
+1 -1
View File
@@ -119,7 +119,7 @@ ul.inline,
ol.inline { ol.inline {
margin-left: 0; margin-left: 0;
list-style: none; list-style: none;
& > li { > li {
display: inline-block; display: inline-block;
padding-left: 5px; padding-left: 5px;
padding-right: 5px; padding-right: 5px;
+4 -4
View File
@@ -1,7 +1,7 @@
{ {
"name": "bootstrap" "name": "bootstrap"
, "description": "Sleek, intuitive, and powerful front-end framework for faster and easier web development." , "description": "Sleek, intuitive, and powerful front-end framework for faster and easier web development."
, "version": "2.2.2" , "version": "2.3.0"
, "keywords": ["bootstrap", "css"] , "keywords": ["bootstrap", "css"]
, "homepage": "http://twitter.github.com/bootstrap/" , "homepage": "http://twitter.github.com/bootstrap/"
, "author": "Twitter Inc." , "author": "Twitter Inc."
@@ -17,10 +17,10 @@
} }
] ]
, "devDependencies": { , "devDependencies": {
"uglify-js": "1.2.6" "uglify-js": "1.3.4"
, "jshint": "0.6.1" , "jshint": "0.9.1"
, "recess": "1.0.3" , "recess": "1.0.3"
, "connect": "2.1.3" , "connect": "2.1.3"
, "hogan.js": "2.0.0" , "hogan.js": "2.0.0"
} }
} }