-
Notifications
You must be signed in to change notification settings - Fork 0
/
bootDropTab.js
49 lines (36 loc) · 1.2 KB
/
bootDropTab.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
(function ( $ ) {
$.fn.dropTab= function(clickHandlerToRemove) {
var $aTab= $("a.contentTab", this);
var $dropDown= $("span.crtOpenDrop", $aTab);
var $subTab= $("a.subtab:first", this);
this.data("bootDropTabHref", $subTab.attr("href"));
$("span.tabsel", $aTab).html($subTab.html());
$dropDown.click(function(e) {
var $anchor= $(this).closest("a");
var href= $anchor.attr("href");
e.preventDefault();
$anchor
.addClass("dropdown-toggle")
.attr("data-toggle", "dropdown");
});
if(clickHandlerToRemove)
$aTab.off("click", clickHandlerToRemove);
$aTab.click(function(e) {
e.preventDefault();
if(! $(e.target).is("span.crtOpenDrop")) {
$(this).removeClass("dropdown-toggle")
.attr("data-toggle", "")
.attr("href", $(this).closest("li.bootDropTab").data("bootDropTabHref"))
.tab("show");
$(this).attr("href", "#");
}
});
$("a.subtab", this).click(function (e) {
e.preventDefault();
$("a span.tabsel", $(this).parents("li.bootDropTab")).html($(this).html().toLowerCase());
$(this).parents("li.bootDropTab").data("bootDropTabHref", $(this).attr("href"));
$(this).tab("show");
});
return this;
};
}( jQuery ));