|
1 | 1 | /** |
2 | 2 | * jQuery plugin to handle width overflow of bootstrap tabs in a manner similar to tab handling on Android. |
3 | 3 | * |
4 | | - * @version v1.1.2 |
| 4 | + * @version v1.1.3 |
5 | 5 | * @license https://github.com/strapless/layout/LICENSE |
6 | 6 | * @author Aaron M Jones <am@jonesiscoding.com> |
7 | 7 | */ |
|
25 | 25 | * @type object |
26 | 26 | */ |
27 | 27 | plugin.settings = {}; |
| 28 | + plugin.sel = {}; |
28 | 29 |
|
29 | 30 | var $el = $(element); |
30 | 31 |
|
31 | 32 | plugin.init = function() { |
32 | 33 |
|
33 | 34 | plugin.settings = $.extend({}, defaults, options); |
34 | 35 |
|
| 36 | + $.each(plugin.settings.cls, function(key,val) { plugin.sel[key] = '.' + val; }); |
| 37 | + |
35 | 38 | $(window).afterwards('resize', function () { |
36 | 39 | plugin.toggleMarker(plugin.hasOverflow()); |
37 | 40 | }); |
38 | 41 |
|
39 | 42 | $(document).on('show.bs.dropdown', '[data-overflow="true"]', function(e) { |
40 | | - var $dropdown = $(e.target).find(plugin.settings.cls.dropdown); |
41 | | - var $trigger = $dropdown.parent('.' + plugin.settings.cls.wrapper).find('.' + plugin.settings.cls.toggle); |
42 | | - var top = $trigger.offset().top + $trigger.outerHeight(); |
43 | | - var left = $trigger.offset().left; |
| 43 | + var $dropdown = $(e.target).find(plugin.sel.dropdown); |
| 44 | + var $trigger = $dropdown.parent(plugin.sel.wrapper).find(plugin.sel.toggle); |
| 45 | + var offset = $(e.target).offset(); |
| 46 | + |
| 47 | + var top = offset.top + $trigger.outerHeight() - 3; |
| 48 | + var left = offset.left; |
44 | 49 | $dropdown.appendTo('body').css({left: left + 'px', top: top + 'px', 'max-height': 'calc(90vh - ' + top + 'px)', 'overflow-y': 'scroll' }); |
45 | 50 | $('body').addClass(plugin.settings.cls.open); |
46 | 51 | $(this).on('hidden.bs.dropdown', function () { |
|
50 | 55 | }); |
51 | 56 |
|
52 | 57 | if (!$(document).hasClass('.touch')) { |
53 | | - $el.on('click', '.' + plugin.settings.cls.marker, function(e) { plugin.onClick(e); }); |
| 58 | + $el.on('click', plugin.sel.marker, function(e) { plugin.onClick(e); }); |
54 | 59 | } |
55 | 60 |
|
56 | 61 | plugin.toggleMarker(plugin.hasOverflow()); |
|
0 commit comments