Не срабатывает функция при первом запуске сайта, либо при ctrl+f5(алерты в функции не срабатывают), после обычного обновления страницы все функционирует в IE9 и Опере такой проблемы не возникает.
<script type="text/javascript" language="javascript">
(function ($) {
$().ready(function () {
$("button").button();
var $select = $('#search select');
// Инициализируем дополнительные элементы
var $selectBoxContainer = $('<div>', {
class: 'searchSelect',
html: '<div class="selectBox"><b></b></div>'
});
var $dropDown = $('<ul>', {
class: 'dropDown'
});
var $selectBox = $selectBoxContainer.find('div.selectBox');
// Добавляем элементы исходного списка в созданный ul
$select.find('option').each(function (i) {
var $option = $(this);
//if ($select.attr('selectedIndex') == i) {
if ($select.val() == $option.val()) {
$selectBox.children('b').html($option.text());
}
var $li = $('<li>', {
html: $option.text(),
click: function () {
// Имитируем поведение select и изменяем его значение
$selectBox.children('b').html($option.text());
$dropDown.trigger('hide');
$select.val($option.val());
}
});
$dropDown.append($li);
});
$selectBoxContainer.append($dropDown.hide());
$select.hide().after($selectBoxContainer);
// Пользовательские события для ul списка
$dropDown.bind('show', function () {
if ($dropDown.is(':animated')) {
return;
}
$selectBox.addClass('expanded');
$dropDown.slideDown(200);
}).bind('hide', function () {
if ($dropDown.is(':animated')) {
return;
}
$selectBox.removeClass('expanded');
$dropDown.slideUp(200);
}).bind('toggle', function () {
if ($selectBox.hasClass('expanded')) {
$dropDown.trigger('hide');
} else
$dropDown.trigger('show');
});
$selectBox.click(function () {
$dropDown.trigger('toggle');
return false;
});
// Свернем список, если ничего не выбрано
$(document).click(function () {
$dropDown.trigger('hide');
});
});
})(jQuery);
</script>