select2

by Sambora

HTML

<link rel="stylesheet" href="https://select2.github.io/select2/select2-3.5.2/select2.css">
<script src="https://select2.github.io/select2/select2-3.5.2/select2.js"></script>
<p>
    <select style="width:300px" class="select">
        <optgroup label="Alaskan/Hawaiian Time Zone">
            <option value="AK">Alaska</option>
            <option value="HI">Hawaii</option>
        </optgroup>
        <optgroup label="Pacific Time Zone">
            <option value="CA">California</option>
            <option value="NV">Nevada</option>
            <option value="OR">Oregon</option>
            <option value="WA">Washington</option>
        </optgroup>
        <optgroup label="Mountain Time Zone">
            <option value="AZ">Arizona</option>
            <option value="CO">Colorado</option>
            <option value="ID">Idaho</option>
            <option value="MT">Montana</option>
            <option value="NE">Nebraska</option>
            <option value="NM">New Mexico</option>
            <option value="ND">North Dakota</option>
            <option value="UT">Utah</option>
            <option value="WY">Wyoming</option>
        </optgroup>
        <optgroup label="Central Time Zone">
            <option value="AL">Alabama</option>
            <option value="AR">Arkansas</option>
            <option value="IL">Illinois</option>
            <option value="IA">Iowa</option>
            <option value="KS">Kansas</option>
            <option value="KY">Kentucky</option>
            <option value="LA">Louisiana</option>
            <option value="MN">Minnesota</option>
            <option value="MS">Mississippi</option>
            <option value="MO">Missouri</option>
            <option value="OK">Oklahoma</option>
            <option value="SD">South Dakota</option>
            <option value="TX">Texas</option>
            <option value="TN">Tennessee</option>
            <option value="WI">Wisconsin</option>
        </optgroup>
        <optgroup label="Eastern Time...

CSS

body {
    font-family: sans-serif;
}
ul {
    padding: 0;
}
.info {
    color: #00f;
    font-weight: bold;
    font-size: 10px;
    float: right;
    position: relative;
    z-index: 1;
}
.info:hover {
    text-decoration: underline;
}

JavaScript

function format(state) {
    if (!state.id) return state.text; // optgroup
    return state.text + " <i class='info'>link</i>";
}

$('.select').each(function (i, select) {
    var select2 = $(select).select2({
        formatResult: format,
        formatSelection: format,
        escapeMarkup: function(m) { return m; }
    }).data('select2');
    
    select2.onSelect = (function(fn) {
        return function(data, options) {
            var target;
            
            if (options != null) {
                target = $(options.target);
            }
            
            if (target && target.hasClass('info')) {
                alert('click!');
            } else {
                return fn.apply(this, arguments);
            }
        }
    })(select2.onSelect);
});