2
0
mirror of https://github.com/tenrok/bootstrap.git synced 2026-06-20 20:00:36 +03:00

Merge pull request #13388 from twbs/xhmikosr-js-style

Improve JS style
This commit is contained in:
XhmikosR
2014-06-07 09:13:05 +03:00
36 changed files with 266 additions and 221 deletions
+4 -5
View File
@@ -53,6 +53,9 @@ module.exports = function (grunt) {
src: 'js/*.js' src: 'js/*.js'
}, },
test: { test: {
options: {
jshintrc: 'js/tests/unit/.jshintrc'
},
src: 'js/tests/unit/*.js' src: 'js/tests/unit/*.js'
}, },
assets: { assets: {
@@ -65,10 +68,6 @@ module.exports = function (grunt) {
config: 'js/.jscsrc' config: 'js/.jscsrc'
}, },
grunt: { grunt: {
options: {
requireCamelCaseOrUpperCaseIdentifiers: null,
requireParenthesesAroundIIFE: true
},
src: '<%= jshint.grunt.src %>' src: '<%= jshint.grunt.src %>'
}, },
src: { src: {
@@ -233,7 +232,7 @@ module.exports = function (grunt) {
core: { core: {
files: { files: {
'dist/css/<%= pkg.name %>.min.css': 'dist/css/<%= pkg.name %>.css', 'dist/css/<%= pkg.name %>.min.css': 'dist/css/<%= pkg.name %>.css',
'dist/css/<%= pkg.name %>-theme.min.css': 'dist/css/<%= pkg.name %>-theme.css', 'dist/css/<%= pkg.name %>-theme.min.css': 'dist/css/<%= pkg.name %>-theme.css'
} }
}, },
docs: { docs: {
+22 -13
View File
@@ -42,7 +42,8 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
// http://blog.alexmaccaw.com/css-transitions // http://blog.alexmaccaw.com/css-transitions
$.fn.emulateTransitionEnd = function (duration) { $.fn.emulateTransitionEnd = function (duration) {
var called = false, $el = this var called = false
var $el = this
$(this).one($.support.transition.end, function () { called = true }) $(this).one($.support.transition.end, function () { called = true })
var callback = function () { if (!called) $($el).trigger($.support.transition.end) } var callback = function () { if (!called) $($el).trigger($.support.transition.end) }
setTimeout(callback, duration) setTimeout(callback, duration)
@@ -364,10 +365,13 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
$next = this.$element.find('.item')[fallback]() $next = this.$element.find('.item')[fallback]()
} }
if ($next.hasClass('active')) return this.sliding = false if ($next.hasClass('active')) return (this.sliding = false)
var relatedTarget = $next[0] var relatedTarget = $next[0]
var slideEvent = $.Event('slide.bs.carousel', { relatedTarget: relatedTarget, direction: direction }) var slideEvent = $.Event('slide.bs.carousel', {
relatedTarget: relatedTarget,
direction: direction
})
this.$element.trigger(slideEvent) this.$element.trigger(slideEvent)
if (slideEvent.isDefaultPrevented()) return if (slideEvent.isDefaultPrevented()) return
@@ -394,7 +398,9 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
$next.removeClass([type, direction].join(' ')).addClass('active') $next.removeClass([type, direction].join(' ')).addClass('active')
$active.removeClass(['active', direction].join(' ')) $active.removeClass(['active', direction].join(' '))
that.sliding = false that.sliding = false
setTimeout(function () { that.$element.trigger(slidEvent) }, 0) setTimeout(function () {
that.$element.trigger(slidEvent)
}, 0)
}) })
.emulateTransitionEnd($active.css('transition-duration').slice(0, -1) * 1000) .emulateTransitionEnd($active.css('transition-duration').slice(0, -1) * 1000)
} else { } else {
@@ -446,7 +452,8 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
// ================= // =================
$(document).on('click.bs.carousel.data-api', '[data-slide], [data-slide-to]', function (e) { $(document).on('click.bs.carousel.data-api', '[data-slide], [data-slide-to]', function (e) {
var $this = $(this), href var href
var $this = $(this)
var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7 var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7
var options = $.extend({}, $target.data(), $this.data()) var options = $.extend({}, $target.data(), $this.data())
var slideIndex = $this.attr('data-slide-to') var slideIndex = $this.attr('data-slide-to')
@@ -454,7 +461,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
Plugin.call($target, options) Plugin.call($target, options)
if (slideIndex = $this.attr('data-slide-to')) { if (slideIndex) {
$target.data('bs.carousel').to(slideIndex) $target.data('bs.carousel').to(slideIndex)
} }
@@ -631,7 +638,8 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
// ================= // =================
$(document).on('click.bs.collapse.data-api', '[data-toggle="collapse"]', function (e) { $(document).on('click.bs.collapse.data-api', '[data-toggle="collapse"]', function (e) {
var $this = $(this), href var href
var $this = $(this)
var target = $this.attr('data-target') var target = $this.attr('data-target')
|| e.preventDefault() || e.preventDefault()
|| (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7 || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7
@@ -1014,7 +1022,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
} }
Modal.prototype.setScrollbar = function () { Modal.prototype.setScrollbar = function () {
var bodyPad = parseInt(this.$body.css('padding-right') || 0) var bodyPad = parseInt((this.$body.css('padding-right') || 0), 10)
if (this.scrollbarWidth) this.$body.css('padding-right', bodyPad + this.scrollbarWidth) if (this.scrollbarWidth) this.$body.css('padding-right', bodyPad + this.scrollbarWidth)
} }
@@ -1461,11 +1469,11 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
} }
Tooltip.prototype.tip = function () { Tooltip.prototype.tip = function () {
return this.$tip = this.$tip || $(this.options.template) return (this.$tip = this.$tip || $(this.options.template))
} }
Tooltip.prototype.arrow = function () { Tooltip.prototype.arrow = function () {
return this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow') return (this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow'))
} }
Tooltip.prototype.validate = function () { Tooltip.prototype.validate = function () {
@@ -1612,7 +1620,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
} }
Popover.prototype.arrow = function () { Popover.prototype.arrow = function () {
return this.$arrow = this.$arrow || this.tip().find('.arrow') return (this.$arrow = this.$arrow || this.tip().find('.arrow'))
} }
Popover.prototype.tip = function () { Popover.prototype.tip = function () {
@@ -1697,7 +1705,6 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
this.offsets = $([]) this.offsets = $([])
this.targets = $([]) this.targets = $([])
var self = this var self = this
this.$body this.$body
@@ -2028,7 +2035,9 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
.trigger($.Event(affixType.replace('affix', 'affixed'))) .trigger($.Event(affixType.replace('affix', 'affixed')))
if (affix == 'bottom') { if (affix == 'bottom') {
this.$element.offset({ top: scrollHeight - this.$element.height() - offsetBottom }) this.$element.offset({
top: scrollHeight - this.$element.height() - offsetBottom
})
} }
} }
+1 -1
View File
File diff suppressed because one or more lines are too long
+1
View File
@@ -11,6 +11,7 @@
!function ($) { !function ($) {
'use strict';
$(function () { $(function () {
+5 -4
View File
@@ -6,7 +6,10 @@
* details, see http://creativecommons.org/licenses/by/3.0/. * details, see http://creativecommons.org/licenses/by/3.0/.
*/ */
/* global JSZip, less, saveAs, UglifyJS, __js, __less, __fonts */
window.onload = function () { // wait for load in a dumb way because B-0 window.onload = function () { // wait for load in a dumb way because B-0
'use strict';
var cw = '/*!\n' + var cw = '/*!\n' +
' * Bootstrap v3.1.1 (http://getbootstrap.com)\n' + ' * Bootstrap v3.1.1 (http://getbootstrap.com)\n' +
' * Copyright 2011-2014 Twitter, Inc.\n' + ' * Copyright 2011-2014 Twitter, Inc.\n' +
@@ -77,8 +80,7 @@ window.onload = function () { // wait for load in a dumb way because B-0
.error(function (err) { .error(function (err) {
try { try {
showError('<strong>Ruh roh!</strong> Could not save gist file, configuration not saved.', err) showError('<strong>Ruh roh!</strong> Could not save gist file, configuration not saved.', err)
} } catch (sameErr) {
catch (sameErr) {
// deliberately ignore the error // deliberately ignore the error
} }
callback('<none>', '<none>') callback('<none>', '<none>')
@@ -413,8 +415,7 @@ window.onload = function () { // wait for load in a dumb way because B-0
// than "blob:", which means it has been polyfilled and is not supported by // than "blob:", which means it has been polyfilled and is not supported by
// this browser. // this browser.
failback() failback()
} } else {
else {
$('<img>') $('<img>')
.on('load', function () { .on('load', function () {
$compileBtn.prop('disabled', false) $compileBtn.prop('disabled', false)
+2 -2
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -13,4 +13,4 @@ var Holder=Holder||{};!function(a,b){function c(a,b,c){b=parseInt(b,10),a=parseI
* Licensed under the Creative Commons Attribution 3.0 Unported License. For * Licensed under the Creative Commons Attribution 3.0 Unported License. For
* details, see http://creativecommons.org/licenses/by/3.0/. * details, see http://creativecommons.org/licenses/by/3.0/.
*/ */
!function(a){a(function(){var b=a(window),c=a(document.body);c.scrollspy({target:".bs-docs-sidebar"}),b.on("load",function(){c.scrollspy("refresh")}),a(".bs-docs-container [href=#]").click(function(a){a.preventDefault()}),setTimeout(function(){var b=a(".bs-docs-sidebar");b.affix({offset:{top:function(){var c=b.offset().top,d=parseInt(b.children(0).css("margin-top"),10),e=a(".bs-docs-nav").height();return this.top=c-e-d},bottom:function(){return this.bottom=a(".bs-docs-footer").outerHeight(!0)}}})},100),setTimeout(function(){a(".bs-top").affix()},100),function(){var b=a("#bs-theme-stylesheet"),c=a(".bs-docs-theme-toggle");c.click(function(){var a=b.attr("href");a&&0!==a.indexOf("data")?(b.attr("href",""),c.text("Preview theme")):(b.attr("href",b.attr("data-href")),c.text("Disable theme preview"))})}(),a(".tooltip-demo").tooltip({selector:'[data-toggle="tooltip"]',container:"body"}),a(".tooltip-test").tooltip(),a(".popover-test").popover(),a(".bs-docs-navbar").tooltip({selector:'a[data-toggle="tooltip"]',container:".bs-docs-navbar .nav"}),a(".bs-docs-popover").popover(),a(".bs-docs-popover-dismiss").popover({trigger:"focus"}),a("#loading-example-btn").click(function(){var b=a(this);b.button("loading"),setTimeout(function(){b.button("reset")},3e3)})})}(jQuery); !function(a){"use strict";a(function(){var b=a(window),c=a(document.body);c.scrollspy({target:".bs-docs-sidebar"}),b.on("load",function(){c.scrollspy("refresh")}),a(".bs-docs-container [href=#]").click(function(a){a.preventDefault()}),setTimeout(function(){var b=a(".bs-docs-sidebar");b.affix({offset:{top:function(){var c=b.offset().top,d=parseInt(b.children(0).css("margin-top"),10),e=a(".bs-docs-nav").height();return this.top=c-e-d},bottom:function(){return this.bottom=a(".bs-docs-footer").outerHeight(!0)}}})},100),setTimeout(function(){a(".bs-top").affix()},100),function(){var b=a("#bs-theme-stylesheet"),c=a(".bs-docs-theme-toggle");c.click(function(){var a=b.attr("href");a&&0!==a.indexOf("data")?(b.attr("href",""),c.text("Preview theme")):(b.attr("href",b.attr("data-href")),c.text("Disable theme preview"))})}(),a(".tooltip-demo").tooltip({selector:'[data-toggle="tooltip"]',container:"body"}),a(".tooltip-test").tooltip(),a(".popover-test").popover(),a(".bs-docs-navbar").tooltip({selector:'a[data-toggle="tooltip"]',container:".bs-docs-navbar .nav"}),a(".bs-docs-popover").popover(),a(".bs-docs-popover-dismiss").popover({trigger:"focus"}),a("#loading-example-btn").click(function(){var b=a(this);b.button("loading"),setTimeout(function(){b.button("reset")},3e3)})})}(jQuery);
@@ -9,6 +9,7 @@
// http://getbootstrap.com/getting-started/#support-ie10-width // http://getbootstrap.com/getting-started/#support-ie10-width
(function () { (function () {
'use strict';
if (navigator.userAgent.match(/IEMobile\/10\.0/)) { if (navigator.userAgent.match(/IEMobile\/10\.0/)) {
var msViewportStyle = document.createElement('style') var msViewportStyle = document.createElement('style')
msViewportStyle.appendChild( msViewportStyle.appendChild(
@@ -9,5 +9,5 @@
*/ */
// Intended to prevent false-positive bug reports about responsive styling supposedly not working in IE8. // Intended to prevent false-positive bug reports about responsive styling supposedly not working in IE8.
if (window.location.protocol == 'file:') { if (window.location.protocol == 'file:') {
alert('ERROR: Bootstrap\'s responsive CSS is disabled!\nSee getbootstrap.com/getting-started/#respond-file-proto for details.') window.alert('ERROR: Bootstrap\'s responsive CSS is disabled!\nSee getbootstrap.com/getting-started/#respond-file-proto for details.')
} }
+2 -2
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+4 -9
View File
@@ -1,11 +1,6 @@
{ {
"curly" : true, "extends" : "../js/.jshintrc",
"eqeqeq": true, "browser" : false,
"newcap": true, "es3" : false,
"noarg" : true, "node" : true
"node" : true,
"nonbsp": true,
"strict": true,
"undef" : true,
"unused": true
} }
+9 -2
View File
@@ -1,16 +1,22 @@
{ {
"disallowEmptyBlocks": true, "disallowEmptyBlocks": true,
"disallowKeywords": ["with"], "disallowKeywords": ["with"],
"disallowLeftStickedOperators": ["?", "+", "-", "/", "*", "=", "==", "===", "!=", "!==", ">", ">=", "<", "<="], "disallowLeftStickedOperators": ["?", "/", "*", "=", "==", "===", "!=", "!==", ">", ">=", "<", "<="],
"disallowMixedSpacesAndTabs": true, "disallowMixedSpacesAndTabs": true,
"disallowMultipleLineStrings": true, "disallowMultipleLineStrings": true,
"disallowMultipleVarDecl": true,
"disallowQuotedKeysInObjects": "allButReserved", "disallowQuotedKeysInObjects": "allButReserved",
"disallowRightStickedOperators": ["?", "/", "*", ":", "=", "==", "===", "!=", "!==", ">", ">=", "<", "<="], "disallowRightStickedOperators": ["?", "/", "*", ":", "=", "==", "===", "!=", "!==", ">", ">=", "<", "<="],
"disallowSpaceAfterPrefixUnaryOperators": ["++", "--", "+", "-", "~", "!"], "disallowSpaceAfterPrefixUnaryOperators": ["++", "--", "+", "-", "~", "!"],
"disallowSpaceBeforePostfixUnaryOperators": ["++", "--"], "disallowSpaceBeforePostfixUnaryOperators": ["++", "--"],
"disallowSpacesInNamedFunctionExpression": { "beforeOpeningRoundBrace": true },
"disallowSpacesInsideArrayBrackets": true,
"disallowSpacesInsideParentheses": true,
"disallowTrailingComma": true,
"disallowTrailingWhitespace": true, "disallowTrailingWhitespace": true,
"requireCamelCaseOrUpperCaseIdentifiers": true, "requireCamelCaseOrUpperCaseIdentifiers": true,
"requireCapitalizedConstructors": true, "requireCapitalizedConstructors": true,
"requireCommaBeforeLineBreak": true,
"requireDotNotation": true, "requireDotNotation": true,
"requireLeftStickedOperators": [","], "requireLeftStickedOperators": [","],
"requireLineFeedAtFileEnd": true, "requireLineFeedAtFileEnd": true,
@@ -18,10 +24,11 @@
"requireSpaceAfterBinaryOperators": ["+", "-", "/", "*", "=", "==", "===", "!=", "!==", ">", "<", ">=", "<="], "requireSpaceAfterBinaryOperators": ["+", "-", "/", "*", "=", "==", "===", "!=", "!==", ">", "<", ">=", "<="],
"requireSpaceAfterKeywords": ["if", "else", "for", "while", "do", "switch", "return", "try", "catch"], "requireSpaceAfterKeywords": ["if", "else", "for", "while", "do", "switch", "return", "try", "catch"],
"requireSpaceBeforeBinaryOperators": ["+", "-", "/", "*", "=", "==", "===", "!=", "!==", ">", "<", ">=", "<="], "requireSpaceBeforeBinaryOperators": ["+", "-", "/", "*", "=", "==", "===", "!=", "!==", ">", "<", ">=", "<="],
"requireSpacesInAnonymousFunctionExpression": { "beforeOpeningCurlyBrace": true }, "requireSpacesInAnonymousFunctionExpression": { "beforeOpeningCurlyBrace": true, "beforeOpeningRoundBrace": true },
"requireSpacesInFunctionDeclaration": { "beforeOpeningCurlyBrace": true }, "requireSpacesInFunctionDeclaration": { "beforeOpeningCurlyBrace": true },
"requireSpacesInFunctionExpression": { "beforeOpeningCurlyBrace": true }, "requireSpacesInFunctionExpression": { "beforeOpeningCurlyBrace": true },
"requireSpacesInNamedFunctionExpression": { "beforeOpeningCurlyBrace": true }, "requireSpacesInNamedFunctionExpression": { "beforeOpeningCurlyBrace": true },
"requireSpacesInsideObjectBrackets": "allButNested",
"validateIndentation": 2, "validateIndentation": 2,
"validateLineBreaks": "LF", "validateLineBreaks": "LF",
"validateQuoteMarks": "'" "validateQuoteMarks": "'"
+7 -5
View File
@@ -1,13 +1,15 @@
{ {
"asi" : true, "asi" : true,
"boss" : true,
"browser" : true, "browser" : true,
"debug" : true,
"devel" : true,
"eqeqeq" : false, "eqeqeq" : false,
"eqnull" : true, "eqnull" : true,
"es3" : true,
"expr" : true, "expr" : true,
"jquery" : true,
"latedef" : true,
"laxbreak" : true, "laxbreak" : true,
"unused" : true, "nonbsp" : true,
"validthis": true "strict" : true,
"undef" : true,
"unused" : true
} }
+3 -1
View File
@@ -86,7 +86,9 @@
.trigger($.Event(affixType.replace('affix', 'affixed'))) .trigger($.Event(affixType.replace('affix', 'affixed')))
if (affix == 'bottom') { if (affix == 'bottom') {
this.$element.offset({ top: scrollHeight - this.$element.height() - offsetBottom }) this.$element.offset({
top: scrollHeight - this.$element.height() - offsetBottom
})
} }
} }
+11 -5
View File
@@ -103,10 +103,13 @@
$next = this.$element.find('.item')[fallback]() $next = this.$element.find('.item')[fallback]()
} }
if ($next.hasClass('active')) return this.sliding = false if ($next.hasClass('active')) return (this.sliding = false)
var relatedTarget = $next[0] var relatedTarget = $next[0]
var slideEvent = $.Event('slide.bs.carousel', { relatedTarget: relatedTarget, direction: direction }) var slideEvent = $.Event('slide.bs.carousel', {
relatedTarget: relatedTarget,
direction: direction
})
this.$element.trigger(slideEvent) this.$element.trigger(slideEvent)
if (slideEvent.isDefaultPrevented()) return if (slideEvent.isDefaultPrevented()) return
@@ -133,7 +136,9 @@
$next.removeClass([type, direction].join(' ')).addClass('active') $next.removeClass([type, direction].join(' ')).addClass('active')
$active.removeClass(['active', direction].join(' ')) $active.removeClass(['active', direction].join(' '))
that.sliding = false that.sliding = false
setTimeout(function () { that.$element.trigger(slidEvent) }, 0) setTimeout(function () {
that.$element.trigger(slidEvent)
}, 0)
}) })
.emulateTransitionEnd($active.css('transition-duration').slice(0, -1) * 1000) .emulateTransitionEnd($active.css('transition-duration').slice(0, -1) * 1000)
} else { } else {
@@ -185,7 +190,8 @@
// ================= // =================
$(document).on('click.bs.carousel.data-api', '[data-slide], [data-slide-to]', function (e) { $(document).on('click.bs.carousel.data-api', '[data-slide], [data-slide-to]', function (e) {
var $this = $(this), href var href
var $this = $(this)
var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7 var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7
var options = $.extend({}, $target.data(), $this.data()) var options = $.extend({}, $target.data(), $this.data())
var slideIndex = $this.attr('data-slide-to') var slideIndex = $this.attr('data-slide-to')
@@ -193,7 +199,7 @@
Plugin.call($target, options) Plugin.call($target, options)
if (slideIndex = $this.attr('data-slide-to')) { if (slideIndex) {
$target.data('bs.carousel').to(slideIndex) $target.data('bs.carousel').to(slideIndex)
} }
+2 -1
View File
@@ -159,7 +159,8 @@
// ================= // =================
$(document).on('click.bs.collapse.data-api', '[data-toggle="collapse"]', function (e) { $(document).on('click.bs.collapse.data-api', '[data-toggle="collapse"]', function (e) {
var $this = $(this), href var href
var $this = $(this)
var target = $this.attr('data-target') var target = $this.attr('data-target')
|| e.preventDefault() || e.preventDefault()
|| (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7 || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7
+1 -1
View File
@@ -209,7 +209,7 @@
} }
Modal.prototype.setScrollbar = function () { Modal.prototype.setScrollbar = function () {
var bodyPad = parseInt(this.$body.css('padding-right') || 0) var bodyPad = parseInt((this.$body.css('padding-right') || 0), 10)
if (this.scrollbarWidth) this.$body.css('padding-right', bodyPad + this.scrollbarWidth) if (this.scrollbarWidth) this.$body.css('padding-right', bodyPad + this.scrollbarWidth)
} }
+1 -1
View File
@@ -72,7 +72,7 @@
} }
Popover.prototype.arrow = function () { Popover.prototype.arrow = function () {
return this.$arrow = this.$arrow || this.tip().find('.arrow') return (this.$arrow = this.$arrow || this.tip().find('.arrow'))
} }
Popover.prototype.tip = function () { Popover.prototype.tip = function () {
-1
View File
@@ -43,7 +43,6 @@
this.offsets = $([]) this.offsets = $([])
this.targets = $([]) this.targets = $([])
var self = this var self = this
this.$body this.$body
+5
View File
@@ -0,0 +1,5 @@
{
"extends" : "../../.jshintrc",
"devel" : true,
"qunit" : true
}
+4 -1
View File
@@ -1,4 +1,5 @@
$(function () { $(function () {
'use strict';
module('affix plugin') module('affix plugin')
@@ -53,7 +54,9 @@ $(function () {
setTimeout(function () { setTimeout(function () {
window.scrollTo(0, document.body.scrollHeight) window.scrollTo(0, document.body.scrollHeight)
setTimeout(function () { window.scroll(0,0) }, 0) setTimeout(function () {
window.scroll(0, 0)
}, 0)
}, 0) }, 0)
}) })
}) })
+5 -4
View File
@@ -1,4 +1,5 @@
$(function () { $(function () {
'use strict';
module('alert plugin') module('alert plugin')
@@ -29,8 +30,8 @@ $(function () {
var alertHTML = '<div class="alert-message warning fade in">' + var alertHTML = '<div class="alert-message warning fade in">' +
'<a class="close" href="#" data-dismiss="alert">×</a>' + '<a class="close" href="#" data-dismiss="alert">×</a>' +
'<p><strong>Holy guacamole!</strong> Best check yo self, you\'re not looking too good.</p>' + '<p><strong>Holy guacamole!</strong> Best check yo self, you\'re not looking too good.</p>' +
'</div>', '</div>'
alert = $(alertHTML).bootstrapAlert() var alert = $(alertHTML).bootstrapAlert()
alert.find('.close').click() alert.find('.close').click()
@@ -43,8 +44,8 @@ $(function () {
var alertHTML = '<div class="alert-message warning fade in">' + var alertHTML = '<div class="alert-message warning fade in">' +
'<a class="close" href="#" data-dismiss="alert">×</a>' + '<a class="close" href="#" data-dismiss="alert">×</a>' +
'<p><strong>Holy guacamole!</strong> Best check yo self, you\'re not looking too good.</p>' + '<p><strong>Holy guacamole!</strong> Best check yo self, you\'re not looking too good.</p>' +
'</div>', '</div>'
alert = $(alertHTML).appendTo('#qunit-fixture').bootstrapAlert() var alert = $(alertHTML).appendTo('#qunit-fixture').bootstrapAlert()
ok($('#qunit-fixture').find('.alert-message').length, 'element added to dom') ok($('#qunit-fixture').find('.alert-message').length, 'element added to dom')
+6 -5
View File
@@ -1,4 +1,5 @@
$(function () { $(function () {
'use strict';
module('button plugin') module('button plugin')
@@ -88,8 +89,8 @@ $(function () {
}) })
test('should toggle active when btn children are clicked', function () { test('should toggle active when btn children are clicked', function () {
var btn = $('<button class="btn" data-toggle="button">mdo</button>'), var btn = $('<button class="btn" data-toggle="button">mdo</button>')
inner = $('<i></i>') var inner = $('<i></i>')
btn btn
.append(inner) .append(inner)
.appendTo($('#qunit-fixture')) .appendTo($('#qunit-fixture'))
@@ -99,9 +100,9 @@ $(function () {
}) })
test('should toggle active when btn children are clicked within btn-group', function () { test('should toggle active when btn children are clicked within btn-group', function () {
var btngroup = $('<div class="btn-group" data-toggle="buttons"></div>'), var btngroup = $('<div class="btn-group" data-toggle="buttons"></div>')
btn = $('<button class="btn">fat</button>'), var btn = $('<button class="btn">fat</button>')
inner = $('<i></i>') var inner = $('<i></i>')
btngroup btngroup
.append(btn.append(inner)) .append(btn.append(inner))
.appendTo($('#qunit-fixture')) .appendTo($('#qunit-fixture'))
+1
View File
@@ -1,4 +1,5 @@
$(function () { $(function () {
'use strict';
module('carousel plugin') module('carousel plugin')
+1
View File
@@ -1,4 +1,5 @@
$(function () { $(function () {
'use strict';
module('collapse plugin') module('collapse plugin')
+19 -18
View File
@@ -1,4 +1,5 @@
$(function () { $(function () {
'use strict';
module('dropdowns plugin') module('dropdowns plugin')
@@ -37,8 +38,8 @@ $(function () {
'<li><a href="#">Another link</a></li>' + '<li><a href="#">Another link</a></li>' +
'</ul>' + '</ul>' +
'</li>' + '</li>' +
'</ul>', '</ul>'
dropdown = $(dropdownHTML).find('[data-toggle="dropdown"]').bootstrapDropdown().click() var dropdown = $(dropdownHTML).find('[data-toggle="dropdown"]').bootstrapDropdown().click()
ok(!dropdown.parent('.dropdown').hasClass('open'), 'open class added on click') ok(!dropdown.parent('.dropdown').hasClass('open'), 'open class added on click')
}) })
@@ -54,8 +55,8 @@ $(function () {
'<li><a href="#">Another link</a></li>' + '<li><a href="#">Another link</a></li>' +
'</ul>' + '</ul>' +
'</li>' + '</li>' +
'</ul>', '</ul>'
dropdown = $(dropdownHTML).find('[data-toggle="dropdown"]').bootstrapDropdown().click() var dropdown = $(dropdownHTML).find('[data-toggle="dropdown"]').bootstrapDropdown().click()
ok(!dropdown.parent('.dropdown').hasClass('open'), 'open class added on click') ok(!dropdown.parent('.dropdown').hasClass('open'), 'open class added on click')
}) })
@@ -71,8 +72,8 @@ $(function () {
'<li><a href="#">Another link</a></li>' + '<li><a href="#">Another link</a></li>' +
'</ul>' + '</ul>' +
'</li>' + '</li>' +
'</ul>', '</ul>'
dropdown = $(dropdownHTML).find('[data-toggle="dropdown"]').bootstrapDropdown().click() var dropdown = $(dropdownHTML).find('[data-toggle="dropdown"]').bootstrapDropdown().click()
ok(dropdown.parent('.dropdown').hasClass('open'), 'open class added on click') ok(dropdown.parent('.dropdown').hasClass('open'), 'open class added on click')
}) })
@@ -88,8 +89,8 @@ $(function () {
'<li><a href="#">Another link</a></li>' + '<li><a href="#">Another link</a></li>' +
'</ul>' + '</ul>' +
'</li>' + '</li>' +
'</ul>', '</ul>'
dropdown = $(dropdownHTML).find('[data-toggle="dropdown"]').bootstrapDropdown().click() var dropdown = $(dropdownHTML).find('[data-toggle="dropdown"]').bootstrapDropdown().click()
ok(dropdown.parent('.dropdown').hasClass('open'), 'open class added on click') ok(dropdown.parent('.dropdown').hasClass('open'), 'open class added on click')
}) })
@@ -106,8 +107,8 @@ $(function () {
'<li><a href="#">Another link</a></li>' + '<li><a href="#">Another link</a></li>' +
'</ul>' + '</ul>' +
'</li>' + '</li>' +
'</ul>', '</ul>'
dropdown = $(dropdownHTML) var dropdown = $(dropdownHTML)
.appendTo('#qunit-fixture') .appendTo('#qunit-fixture')
.find('[data-toggle="dropdown"]') .find('[data-toggle="dropdown"]')
.bootstrapDropdown() .bootstrapDropdown()
@@ -135,10 +136,10 @@ $(function () {
' <ul class="dropdown-menu">' + ' <ul class="dropdown-menu">' +
' <li><a href="#">Action 1</a></li>' + ' <li><a href="#">Action 1</a></li>' +
' </ul>' + ' </ul>' +
'</div>', '</div>'
dropdowns = $(dropdownHTML).appendTo('#qunit-fixture').find('[data-toggle="dropdown"]'), var dropdowns = $(dropdownHTML).appendTo('#qunit-fixture').find('[data-toggle="dropdown"]')
first = dropdowns.first(), var first = dropdowns.first()
last = dropdowns.last() var last = dropdowns.last()
ok(dropdowns.length == 2, 'Should be two dropdowns') ok(dropdowns.length == 2, 'Should be two dropdowns')
@@ -168,8 +169,8 @@ $(function () {
'<li><a href="#">Another link</a></li>' + '<li><a href="#">Another link</a></li>' +
'</ul>' + '</ul>' +
'</li>' + '</li>' +
'</ul>', '</ul>'
dropdown = $(dropdownHTML) var dropdown = $(dropdownHTML)
.appendTo('#qunit-fixture') .appendTo('#qunit-fixture')
.find('[data-toggle="dropdown"]') .find('[data-toggle="dropdown"]')
.bootstrapDropdown() .bootstrapDropdown()
@@ -202,8 +203,8 @@ $(function () {
'<li><a href="#">Another link</a></li>' + '<li><a href="#">Another link</a></li>' +
'</ul>' + '</ul>' +
'</li>' + '</li>' +
'</ul>', '</ul>'
dropdown = $(dropdownHTML) var dropdown = $(dropdownHTML)
.appendTo('#qunit-fixture') .appendTo('#qunit-fixture')
.find('[data-toggle="dropdown"]') .find('[data-toggle="dropdown"]')
.bootstrapDropdown() .bootstrapDropdown()
+1
View File
@@ -1,4 +1,5 @@
$(function () { $(function () {
'use strict';
module('modal plugin') module('modal plugin')
-1
View File
@@ -6,7 +6,6 @@
* Licensed under the MIT license. * Licensed under the MIT license.
*/ */
/*global QUnit:true, alert:true*/
(function () { (function () {
'use strict'; 'use strict';
+5 -2
View File
@@ -1,4 +1,5 @@
$(function () { $(function () {
'use strict';
module('popover plugin') module('popover plugin')
@@ -83,7 +84,7 @@ $(function () {
test('should not duplicate HTML object', function () { test('should not duplicate HTML object', function () {
$.support.transition = false $.support.transition = false
$div = $('<div>').html('loves writing tests (╯°□°)╯︵ ┻━┻') var $div = $('<div>').html('loves writing tests (╯°□°)╯︵ ┻━┻')
var popover = $('<a href="#">@fat</a>') var popover = $('<a href="#">@fat</a>')
.appendTo('#qunit-fixture') .appendTo('#qunit-fixture')
@@ -166,7 +167,9 @@ $(function () {
}) })
test('should destroy popover', function () { test('should destroy popover', function () {
var popover = $('<div/>').bootstrapPopover({trigger: 'hover'}).on('click.foo', function () {}) var popover = $('<div/>').bootstrapPopover({
trigger: 'hover'
}).on('click.foo', function () {})
ok(popover.data('bs.popover'), 'popover has data') ok(popover.data('bs.popover'), 'popover has data')
ok($._data(popover[0], 'events').mouseover && $._data(popover[0], 'events').mouseout, 'popover has hover event') ok($._data(popover[0], 'events').mouseover && $._data(popover[0], 'events').mouseout, 'popover has hover event')
ok($._data(popover[0], 'events').click[0].namespace == 'foo', 'popover has extra click.foo event') ok($._data(popover[0], 'events').click[0].namespace == 'foo', 'popover has extra click.foo event')
+12 -10
View File
@@ -1,4 +1,5 @@
$(function () { $(function () {
'use strict';
module('scrollspy plugin') module('scrollspy plugin')
@@ -26,8 +27,9 @@ $(function () {
}) })
test('should switch active class on scroll', function () { test('should switch active class on scroll', function () {
var sectionHTML = '<div id="masthead"></div>', var sectionHTML = '<div id="masthead"></div>'
topbarHTML = '<div class="topbar">' + $(sectionHTML).append('#qunit-fixture')
var topbarHTML = '<div class="topbar">' +
'<div class="topbar-inner">' + '<div class="topbar-inner">' +
'<div class="container">' + '<div class="container">' +
'<h3><a href="#">Bootstrap</a></h3>' + '<h3><a href="#">Bootstrap</a></h3>' +
@@ -35,8 +37,8 @@ $(function () {
'</ul>' + '</ul>' +
'</div>' + '</div>' +
'</div>' + '</div>' +
'</div>', '</div>'
$topbar = $(topbarHTML).bootstrapScrollspy() var $topbar = $(topbarHTML).bootstrapScrollspy()
$(sectionHTML).append('#qunit-fixture') $(sectionHTML).append('#qunit-fixture')
ok($topbar.find('.active', true)) ok($topbar.find('.active', true))
@@ -69,9 +71,9 @@ $(function () {
'</p>' + '</p>' +
'</div>' + '</div>' +
'</div>' + '</div>' +
'</div>', '</div>'
$section = $(sectionHTML).appendTo('#qunit-fixture'), var $section = $(sectionHTML).appendTo('#qunit-fixture')
$scrollSpy = $section var $scrollSpy = $section
.show() .show()
.find('#scrollspy-example') .find('#scrollspy-example')
.bootstrapScrollspy({ target: '#ss-target' }) .bootstrapScrollspy({ target: '#ss-target' })
@@ -97,9 +99,9 @@ $(function () {
'<div id="one" style="height: 500px;"></div>' + '<div id="one" style="height: 500px;"></div>' +
'<div id="two" style="height: 300px;"></div>' + '<div id="two" style="height: 300px;"></div>' +
'<div id="three" style="height: 10px;"></div>' + '<div id="three" style="height: 10px;"></div>' +
'</div>', '</div>'
$section = $(sectionHTML).appendTo('#qunit-fixture'), var $section = $(sectionHTML).appendTo('#qunit-fixture')
$scrollSpy = $section var $scrollSpy = $section
.show() .show()
.filter('#content') .filter('#content')
$scrollSpy.bootstrapScrollspy({ target: '#navigation', offset: $scrollSpy.position().top }) $scrollSpy.bootstrapScrollspy({ target: '#navigation', offset: $scrollSpy.position().top })
+1
View File
@@ -1,4 +1,5 @@
$(function () { $(function () {
'use strict';
module('tabs plugin') module('tabs plugin')
+33 -31
View File
@@ -1,4 +1,5 @@
$(function () { $(function () {
'use strict';
module('tooltip plugin') module('tooltip plugin')
@@ -65,8 +66,8 @@ $(function () {
test('should assign a unique id tooltip element', function () { test('should assign a unique id tooltip element', function () {
$('<a href="#" rel="tooltip" title="Another tooltip"></a>') $('<a href="#" rel="tooltip" title="Another tooltip"></a>')
.appendTo('#qunit-fixture') .appendTo('#qunit-fixture')
.bootstrapTooltip('show'), .bootstrapTooltip('show')
id = $('.tooltip').attr('id') var id = $('.tooltip').attr('id')
ok($('#' + id).length == 1 && id.indexOf('tooltip') === 0, 'generated prefixed and unique tooltip id') ok($('#' + id).length == 1 && id.indexOf('tooltip') === 0, 'generated prefixed and unique tooltip id')
}) })
@@ -311,8 +312,9 @@ $(function () {
test('should show tooltip with delegate selector on click', function () { test('should show tooltip with delegate selector on click', function () {
var div = $('<div><a href="#" rel="tooltip" title="Another tooltip"></a></div>') var div = $('<div><a href="#" rel="tooltip" title="Another tooltip"></a></div>')
div.appendTo('#qunit-fixture') div.appendTo('#qunit-fixture').bootstrapTooltip({
.bootstrapTooltip({ selector: 'a[rel="tooltip"]', trigger: 'click' }) selector: 'a[rel="tooltip"]', trigger: 'click'
})
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')
}) })
@@ -367,9 +369,9 @@ $(function () {
test('should place tooltip on top of element', function () { test('should place tooltip on top of element', function () {
var container = $('<div />').appendTo('body') var container = $('<div />').appendTo('body')
.css({position: 'absolute', bottom: 0, left: 0, textAlign: 'right', width: 300, height: 300}), .css({ position: 'absolute', bottom: 0, left: 0, textAlign: 'right', width: 300, height: 300 })
p = $('<p style="margin-top:200px" />').appendTo(container), var p = $('<p style="margin-top:200px" />').appendTo(container)
tooltiped = $('<a href="#" title="very very very very very very very long tooltip">Hover me</a>') var tooltiped = $('<a href="#" title="very very very very very very very long tooltip">Hover me</a>')
.css({ marginTop: 200 }) .css({ marginTop: 200 })
.appendTo(p) .appendTo(p)
.bootstrapTooltip({ placement: 'top', animate: false }) .bootstrapTooltip({ placement: 'top', animate: false })
@@ -389,12 +391,12 @@ $(function () {
test('should add position class before positioning so that position-specific styles are taken into account', function () { test('should add position class before positioning so that position-specific styles are taken into account', function () {
$('head').append('<style id="test"> .tooltip.right { white-space: nowrap; } .tooltip.right .tooltip-inner { max-width: none; } </style>') $('head').append('<style id="test"> .tooltip.right { white-space: nowrap; } .tooltip.right .tooltip-inner { max-width: none; } </style>')
var container = $('<div />').appendTo('body'), var container = $('<div />').appendTo('body')
target = $('<a href="#" rel="tooltip" title="very very very very very very very very long tooltip in one line"></a>') var target = $('<a href="#" rel="tooltip" title="very very very very very very very very long tooltip in one line"></a>')
.appendTo(container) .appendTo(container)
.bootstrapTooltip({ placement: 'right', viewport: null }) .bootstrapTooltip({ placement: 'right', viewport: null })
.bootstrapTooltip('show'), .bootstrapTooltip('show')
tooltip = container.find('.tooltip') var tooltip = container.find('.tooltip')
// this is some dumb hack shit because sub pixels in firefox // this is some dumb hack shit because sub pixels in firefox
var top = Math.round(target.offset().top + (target[0].offsetHeight / 2) - (tooltip[0].offsetHeight / 2)) var top = Math.round(target.offset().top + (target[0].offsetHeight / 2) - (tooltip[0].offsetHeight / 2))
@@ -482,12 +484,12 @@ $(function () {
test('should adjust the tip\'s top when up against the top of the viewport', function () { test('should adjust the tip\'s top when up against the top of the viewport', function () {
$('head').append('<style id="test"> .tooltip .tooltip-inner { width: 200px; height: 200px; max-width: none; } </style>') $('head').append('<style id="test"> .tooltip .tooltip-inner { width: 200px; height: 200px; max-width: none; } </style>')
var container = $('<div />').appendTo('body'), var container = $('<div />').appendTo('body')
target = $('<a href="#" rel="tooltip" title="tip" style="position: fixed; top: 0px; left: 0px;"></a>') var target = $('<a href="#" rel="tooltip" title="tip" style="position: fixed; top: 0px; left: 0px;"></a>')
.appendTo(container) .appendTo(container)
.bootstrapTooltip({ placement: 'right', viewport: { selector: 'body', padding: 12 }}) .bootstrapTooltip({ placement: 'right', viewport: { selector: 'body', padding: 12 }})
.bootstrapTooltip('show'), .bootstrapTooltip('show')
tooltip = container.find('.tooltip') var tooltip = container.find('.tooltip')
ok(Math.round(tooltip.offset().top) === 12) ok(Math.round(tooltip.offset().top) === 12)
target.bootstrapTooltip('hide') target.bootstrapTooltip('hide')
@@ -497,12 +499,12 @@ $(function () {
test('should adjust the tip\'s top when up against the bottom of the viewport', function () { test('should adjust the tip\'s top when up against the bottom of the viewport', function () {
$('head').append('<style id="test"> .tooltip .tooltip-inner { width: 200px; height: 200px; max-width: none; } </style>') $('head').append('<style id="test"> .tooltip .tooltip-inner { width: 200px; height: 200px; max-width: none; } </style>')
var container = $('<div />').appendTo('body'), var container = $('<div />').appendTo('body')
target = $('<a href="#" rel="tooltip" title="tip" style="position: fixed; bottom: 0px; left: 0px;"></a>') var target = $('<a href="#" rel="tooltip" title="tip" style="position: fixed; bottom: 0px; left: 0px;"></a>')
.appendTo(container) .appendTo(container)
.bootstrapTooltip({ placement: 'right', viewport: { selector: 'body', padding: 12 }}) .bootstrapTooltip({ placement: 'right', viewport: { selector: 'body', padding: 12 }})
.bootstrapTooltip('show'), .bootstrapTooltip('show')
tooltip = container.find('.tooltip') var tooltip = container.find('.tooltip')
ok(Math.round(tooltip.offset().top) === Math.round($(window).height() - 12 - tooltip[0].offsetHeight)) ok(Math.round(tooltip.offset().top) === Math.round($(window).height() - 12 - tooltip[0].offsetHeight))
target.bootstrapTooltip('hide') target.bootstrapTooltip('hide')
@@ -512,12 +514,12 @@ $(function () {
test('should adjust the tip\'s left when up against the left of the viewport', function () { test('should adjust the tip\'s left when up against the left of the viewport', function () {
$('head').append('<style id="test"> .tooltip .tooltip-inner { width: 200px; height: 200px; max-width: none; } </style>') $('head').append('<style id="test"> .tooltip .tooltip-inner { width: 200px; height: 200px; max-width: none; } </style>')
var container = $('<div />').appendTo('body'), var container = $('<div />').appendTo('body')
target = $('<a href="#" rel="tooltip" title="tip" style="position: fixed; top: 0px; left: 0px;"></a>') var target = $('<a href="#" rel="tooltip" title="tip" style="position: fixed; top: 0px; left: 0px;"></a>')
.appendTo(container) .appendTo(container)
.bootstrapTooltip({ placement: 'bottom', viewport: { selector: 'body', padding: 12 }}) .bootstrapTooltip({ placement: 'bottom', viewport: { selector: 'body', padding: 12 }})
.bootstrapTooltip('show'), .bootstrapTooltip('show')
tooltip = container.find('.tooltip') var tooltip = container.find('.tooltip')
ok(Math.round(tooltip.offset().left) === 12) ok(Math.round(tooltip.offset().left) === 12)
target.bootstrapTooltip('hide') target.bootstrapTooltip('hide')
@@ -527,12 +529,12 @@ $(function () {
test('should adjust the tip\'s left when up against the right of the viewport', function () { test('should adjust the tip\'s left when up against the right of the viewport', function () {
$('head').append('<style id="test"> .tooltip .tooltip-inner { width: 200px; height: 200px; max-width: none; } </style>') $('head').append('<style id="test"> .tooltip .tooltip-inner { width: 200px; height: 200px; max-width: none; } </style>')
var container = $('<div />').appendTo('body'), var container = $('<div />').appendTo('body')
target = $('<a href="#" rel="tooltip" title="tip" style="position: fixed; top: 0px; right: 0px;"></a>') var target = $('<a href="#" rel="tooltip" title="tip" style="position: fixed; top: 0px; right: 0px;"></a>')
.appendTo(container) .appendTo(container)
.bootstrapTooltip({ placement: 'bottom', viewport: { selector: 'body', padding: 12 }}) .bootstrapTooltip({ placement: 'bottom', viewport: { selector: 'body', padding: 12 }})
.bootstrapTooltip('show'), .bootstrapTooltip('show')
tooltip = container.find('.tooltip') var tooltip = container.find('.tooltip')
ok(Math.round(tooltip.offset().left) === Math.round($(window).width() - 12 - tooltip[0].offsetWidth)) ok(Math.round(tooltip.offset().left) === Math.round($(window).width() - 12 - tooltip[0].offsetWidth))
target.bootstrapTooltip('hide') target.bootstrapTooltip('hide')
@@ -543,12 +545,12 @@ $(function () {
$('head').append('<style id="test"> .tooltip, .tooltip .tooltip-inner { width: 200px; height: 200px; max-width: none; } </style>') $('head').append('<style id="test"> .tooltip, .tooltip .tooltip-inner { width: 200px; height: 200px; max-width: none; } </style>')
$('head').append('<style id="viewport-style"> .container-viewport { position: absolute; top: 50px; left: 60px; width: 300px; height: 300px; } </style>') $('head').append('<style id="viewport-style"> .container-viewport { position: absolute; top: 50px; left: 60px; width: 300px; height: 300px; } </style>')
var container = $('<div />', {class: 'container-viewport'}).appendTo('body'), var container = $('<div />', { 'class': 'container-viewport' }).appendTo('body')
target = $('<a href="#" rel="tooltip" title="tip" style="position: fixed; top: 50px; left: 350px;"></a>') var target = $('<a href="#" rel="tooltip" title="tip" style="position: fixed; top: 50px; left: 350px;"></a>')
.appendTo(container) .appendTo(container)
.bootstrapTooltip({ placement: 'bottom', viewport: '.container-viewport' }) .bootstrapTooltip({ placement: 'bottom', viewport: '.container-viewport' })
.bootstrapTooltip('show'), .bootstrapTooltip('show')
tooltip = container.find('.tooltip') var tooltip = container.find('.tooltip')
ok(Math.round(tooltip.offset().left) === Math.round(60 + container.width() - tooltip[0].offsetWidth)) ok(Math.round(tooltip.offset().left) === Math.round(60 + container.width() - tooltip[0].offsetWidth))
target.bootstrapTooltip('hide') target.bootstrapTooltip('hide')
+2 -2
View File
@@ -378,11 +378,11 @@
} }
Tooltip.prototype.tip = function () { Tooltip.prototype.tip = function () {
return this.$tip = this.$tip || $(this.options.template) return (this.$tip = this.$tip || $(this.options.template))
} }
Tooltip.prototype.arrow = function () { Tooltip.prototype.arrow = function () {
return this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow') return (this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow'))
} }
Tooltip.prototype.validate = function () { Tooltip.prototype.validate = function () {
+2 -1
View File
@@ -34,7 +34,8 @@
// http://blog.alexmaccaw.com/css-transitions // http://blog.alexmaccaw.com/css-transitions
$.fn.emulateTransitionEnd = function (duration) { $.fn.emulateTransitionEnd = function (duration) {
var called = false, $el = this var called = false
var $el = this
$(this).one($.support.transition.end, function () { called = true }) $(this).one($.support.transition.end, function () { called = true })
var callback = function () { if (!called) $($el).trigger($.support.transition.end) } var callback = function () { if (!called) $($el).trigger($.support.transition.end) }
setTimeout(callback, duration) setTimeout(callback, duration)