diff options
| author | fat <[email protected]> | 2013-07-18 00:59:31 -0700 |
|---|---|---|
| committer | fat <[email protected]> | 2013-07-18 00:59:31 -0700 |
| commit | 37e899d76630d29565c0c6ff67885eee01777e1a (patch) | |
| tree | 12f6e9985723e6b167d5ed01b8693ffd3b5079f9 /docs/assets/js/bootstrap.js | |
| parent | 2a4a0f70ef6dde303d92ee2bcc082d9e9aad181b (diff) | |
| download | bootstrap-37e899d76630d29565c0c6ff67885eee01777e1a.tar.xz bootstrap-37e899d76630d29565c0c6ff67885eee01777e1a.zip | |
get button js working with actual form elements p cooll
Diffstat (limited to 'docs/assets/js/bootstrap.js')
| -rw-r--r-- | docs/assets/js/bootstrap.js | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/docs/assets/js/bootstrap.js b/docs/assets/js/bootstrap.js index cf921cf2a..c9a2a8350 100644 --- a/docs/assets/js/bootstrap.js +++ b/docs/assets/js/bootstrap.js @@ -196,10 +196,11 @@ } Button.prototype.toggle = function () { - var $parent = this.$element.closest('[data-toggle="buttons-radio"]') + var $parent = this.$element.closest('[data-toggle="buttons"]') - if ($parent) { - $parent.find('.active').removeClass('active') + if ($parent.length) { + var $input = this.$element.find('input').prop('checked', !this.$element.hasClass('active')) + if ($input.prop('type') === 'radio') $parent.find('.active').removeClass('active') } this.$element.toggleClass('active') @@ -241,6 +242,7 @@ $(document).on('click.bs.button.data-api', '[data-toggle^=button]', function (e) { var $btn = $(e.target) + if ($btn.has('input').length) return // throw away double event for inputs if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn') $btn.button('toggle') }) @@ -604,21 +606,22 @@ // ================= $(document).on('click.bs.collapse.data-api', '[data-toggle=collapse]', function (e) { - var $this = $(this), href - var target = $this.attr('data-target') + var $this = $(this), href + var target = $this.attr('data-target') || e.preventDefault() || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7 - var data = $(target).data('bs.collapse') - var option = data ? 'toggle' : $this.data() - var parent = $this.attr('data-parent') + var $target = $(target) + var data = $target.data('bs.collapse') + var option = data ? 'toggle' : $this.data() + var parent = $this.attr('data-parent') var $parent = parent && $(parent) if (!data || !data.transitioning) { if ($parent) $parent.find('[data-toggle=collapse][data-parent=' + parent + ']').not($this).addClass('collapsed') - $this[$(target).hasClass('in') ? 'addClass' : 'removeClass']('collapsed') + $this[$target.hasClass('in') ? 'addClass' : 'removeClass']('collapsed') } - $(target).collapse(option) + $target.collapse(option) }) }(window.jQuery); |
