Research
Security News
Malicious npm Packages Inject SSH Backdoors via Typosquatted Libraries
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
pretty-dropdowns
Advanced tools
A simple, lightweight jQuery plugin to create stylized drop-down menus.
Pretty Dropdowns is a simple, lightweight jQuery plugin that converts <select>
drop-down menus into "pretty" menus that you can skin using CSS.
<select multiple>
)<optgroup>
)title
) carried over at <select>
, <option>
, and <optgroup>
levels<label for>
(menu will get focus when you click on the label)<link rel="stylesheet" href="/css/prettydropdowns.css">
<script src="//code.jquery.com/jquery-2.2.4.min.js"></script>
<script src="/js/jquery.prettydropdowns.js"></script>
You have complete control over the look and feel of the drop-down menu by modifying prettydropdowns.css
. It is recommended to load the JavaScript files at the bottom just before the closing </body>
tag if possible.
Make sure this comes after the two required JavaScript files from Step 1 are loaded.
<script>
$(document).ready(function() {
$('select').prettyDropdown();
});
</script>
You can also specify some options:
<script>
$(document).ready(function() {
$('select').prettyDropdown({
height: 30
});
});
</script>
Name | Type | Default | Description |
---|---|---|---|
classic | boolean | false | The default behavior is to move the selected item to the top. If you want the order of items to remain static, then set this to true . |
customClass | string | arrow | The class name to customize the drop-down menu style. The default arrow class displays a chevron-type arrow icon. Two additional helper classes are built in (add either or both to arrow ): triangle converts the chevron into a solid triangle; small renders the arrow icon at half size. |
height | number | 50 | The drop-down menu item height. The minimum value is 8. Note that the maximum number of items displayed when the menu is opened is determined by the size attribute of the <select> element. |
hoverIntent | number | 200 | The wait period (in milliseconds) before collapsing the drop-down menu after you hover off of it. If you hover back onto the menu within the wait period, it will remain open. The minimum value is 0. |
multiDelimiter | string | ; | The separator character to use for the list of selected items in a multi-select menu. |
multiVerbosity | number | 99 | The maximum number of selected items to display in a multi-select menu before replacing it with a summary (e.g., "2/3 selected"). To display "0/3 selected" instead of "None selected", set this option to -1. |
selectedMarker | string | ✓ | The icon or symbol to mark that an item is selected. HTML is accepted (e.g., <i class="fa fa-check"></i> ). |
afterLoad | function | Callback function to execute after the drop-down menu widget is loaded. |
Name | Description |
---|---|
refresh() | Rebuild the drop-down menu. You should do this whenever the <select> state changes (e.g., one or more <option> gets added, removed, or disabled). |
Example:
<script>
$(document).ready(function() {
$dropdown = $('select').prettyDropdown();
});
// When <select> state changes...
$dropdown.refresh();
</script>
The data-prefix
and data-suffix
attributes can be added to the <option>
elements to insert custom HTML before and after each menu item, respectively. You can make use of these attributes to add icons, thumbnails, badges, etc. to the menu items. A good example can be seen in the demo.
Key | Description |
---|---|
Tab | Put focus on the next drop-down menu. If a menu is open, it will automatically close. |
Shift +Tab | Put focus on the previous drop-down menu. If a menu is open, it will automatically close. |
Enter | Open the drop-down menu that is in focus. If it is already open, then select the highlighted item. |
Esc | Close the drop-down menu. |
Home | Jump to the first item in the drop-down menu. |
End | Jump to the last item in the drop-down menu. |
PgUp | Go to the previous page of items. If there is no scrollbar, then this is the same as Home . |
PgDn | Go to the next page of items. If there is no scrollbar, then this is the same as End . |
Up | Highlight the previous item in the drop-down menu. If already on the first item, then highlight the last item. |
Down | Highlight the next item in the drop-down menu. If already on the last item, then highlight the first item. |
A -Z 0 -9 Space | If the drop-down menu is open, jump to the first item matching the key(s) pressed. Every time you press a key it will cycle through the matching items. Hint: if you type fast enough, it will try to find a match for everything you typed instead of just the first character. If the menu is closed and in focus, Space opens the menu (same as Enter ). |
The following attributes are added to improve accessibility when using alternative input methods (e.g., keyboard, screen reader):
role="listbox"
and role="option"
(to tell screen readers that it's a drop-down menu widget)aria-activedescendant
(points to the currently selected menu item)aria-expanded
(this is true
when the menu is open and false
when it's closed)aria-label
(this is equivalent to the title
attribute for screen readers)aria-labelledby
(points to the <label>
element that is linked to the <select>
if it exists)tabindex="0"
(to allow the widget to get focus when you hit the Tab
key)Please submit an issue if there are other ways to improve accessibility.
title
value will be read twice in some screen reader clients (once for title
, once for aria-label
).Choose from one of the following methods:
git clone git@github.com:thdoan/pretty-dropdowns.git
git clone https://github.com/thdoan/pretty-dropdowns.git
bower install pretty-dropdowns
npm install pretty-dropdowns
FAQs
A simple, lightweight jQuery plugin to create stylized drop-down menus.
The npm package pretty-dropdowns receives a total of 19 weekly downloads. As such, pretty-dropdowns popularity was classified as not popular.
We found that pretty-dropdowns demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
Security News
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
Security News
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.