Page Menu
Home
DevCentral
Search
Configure Global Search
Log In
Files
F8321548
jquery.foundation.buttons.js
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
3 KB
Referenced Files
None
Subscribers
None
jquery.foundation.buttons.js
View Options
;(
function
(
$
,
window
,
undefined
)
{
'use strict'
;
$
.
fn
.
foundationButtons
=
function
(
options
)
{
var
$doc
=
$
(
document
),
config
=
$
.
extend
({
dropdownAsToggle
:
false
,
activeClass
:
'active'
},
options
),
// close all dropdowns except for the dropdown passed
closeDropdowns
=
function
(
dropdown
)
{
// alert(dropdown.html());
$
(
'.button.dropdown'
).
find
(
'ul'
).
not
(
dropdown
).
removeClass
(
'show-dropdown'
);
},
// reset all toggle states except for the button passed
resetToggles
=
function
(
button
)
{
// alert(button.html());
var
buttons
=
$
(
'.button.dropdown'
).
not
(
button
);
buttons
.
add
(
$
(
'> span.'
+
config
.
activeClass
,
buttons
)).
removeClass
(
config
.
activeClass
);
};
// Prevent event propagation on disabled buttons
$doc
.
on
(
'click.fndtn'
,
'.button.disabled'
,
function
(
e
)
{
e
.
preventDefault
();
});
$
(
'.button.dropdown > ul'
,
this
).
addClass
(
'no-hover'
);
// reset other active states
$doc
.
on
(
'click.fndtn'
,
'.button.dropdown:not(.split), .button.dropdown.split span'
,
function
(
e
)
{
var
$el
=
$
(
this
),
button
=
$el
.
closest
(
'.button.dropdown'
),
dropdown
=
$
(
'> ul'
,
button
);
// If the click is registered on an actual link or on button element then do not preventDefault which stops the browser from following the link
if
([
"A"
,
"BUTTON"
].
indexOf
(
e
.
target
.
nodeName
)
==
-
1
){
e
.
preventDefault
();
}
// close other dropdowns
setTimeout
(
function
()
{
closeDropdowns
(
config
.
dropdownAsToggle
?
''
:
dropdown
);
dropdown
.
toggleClass
(
'show-dropdown'
);
if
(
config
.
dropdownAsToggle
)
{
resetToggles
(
button
);
$el
.
toggleClass
(
config
.
activeClass
);
}
},
0
);
});
// close all dropdowns and deactivate all buttons
$doc
.
on
(
'click.fndtn'
,
'body, html'
,
function
(
e
)
{
if
(
undefined
==
e
.
originalEvent
)
{
return
;
}
// check original target instead of stopping event propagation to play nice with other events
if
(
!
$
(
e
.
originalEvent
.
target
).
is
(
'.button.dropdown:not(.split), .button.dropdown.split span'
))
{
closeDropdowns
();
if
(
config
.
dropdownAsToggle
)
{
resetToggles
();
}
}
});
// Positioning the Flyout List
var
normalButtonHeight
=
$
(
'.button.dropdown:not(.large):not(.small):not(.tiny):visible'
,
this
).
outerHeight
()
-
1
,
largeButtonHeight
=
$
(
'.button.large.dropdown:visible'
,
this
).
outerHeight
()
-
1
,
smallButtonHeight
=
$
(
'.button.small.dropdown:visible'
,
this
).
outerHeight
()
-
1
,
tinyButtonHeight
=
$
(
'.button.tiny.dropdown:visible'
,
this
).
outerHeight
()
-
1
;
$
(
'.button.dropdown:not(.large):not(.small):not(.tiny) > ul'
,
this
).
css
(
'top'
,
normalButtonHeight
);
$
(
'.button.dropdown.large > ul'
,
this
).
css
(
'top'
,
largeButtonHeight
);
$
(
'.button.dropdown.small > ul'
,
this
).
css
(
'top'
,
smallButtonHeight
);
$
(
'.button.dropdown.tiny > ul'
,
this
).
css
(
'top'
,
tinyButtonHeight
);
$
(
'.button.dropdown.up:not(.large):not(.small):not(.tiny) > ul'
,
this
).
css
(
'top'
,
'auto'
).
css
(
'bottom'
,
normalButtonHeight
-
2
);
$
(
'.button.dropdown.up.large > ul'
,
this
).
css
(
'top'
,
'auto'
).
css
(
'bottom'
,
largeButtonHeight
-
2
);
$
(
'.button.dropdown.up.small > ul'
,
this
).
css
(
'top'
,
'auto'
).
css
(
'bottom'
,
smallButtonHeight
-
2
);
$
(
'.button.dropdown.up.tiny > ul'
,
this
).
css
(
'top'
,
'auto'
).
css
(
'bottom'
,
tinyButtonHeight
-
2
);
};
})(
jQuery
,
this
);
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Tue, May 13, 16:45 (17 h, 49 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
2568874
Default Alt Text
jquery.foundation.buttons.js (3 KB)
Attached To
Mode
rTOOLS Nasqueron Tools
Attached
Detach File
Event Timeline
Log In to Comment