Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Не срабатывает функция при первом запуске сайта (https://javascript.ru/forum/jquery/28383-ne-srabatyvaet-funkciya-pri-pervom-zapuske-sajjta.html)

MsVasia 17.05.2012 14:52

Не срабатывает функция при первом запуске сайта
 
Не срабатывает функция при первом запуске сайта, либо при 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>

beard 18.05.2012 00:34

$().ready(function () {

что это?

MsVasia 18.05.2012 09:36

Для повышения времени отклика, но если убираем то проблема все равно остается
$(function () {
     $("button").button();

     var $select = $('#search select');

....

melky 18.05.2012 09:41

попробуйте заменить это
$().ready(function () {

на это
$(function(){


так код, вроде, беглым взглядом номальный.

MsVasia 18.05.2012 10:08

пробовал, результат тот же

beard 18.05.2012 10:11

Цитата:

Сообщение от MsVasia (Сообщение 175140)
Для повышения времени отклика

да ну, не уверен что это работает, и что-то повышает

MsVasia 18.05.2012 10:29

Цитата:

Сообщение от beard (Сообщение 175144)
да ну, не уверен что это работает, и что-то повышает

Возможно, но тут немного о другом тема :) и не хотелось бы заводить пустые споры. Мне главное с проблемой разобраться. Сайт то уже запущен.

MsVasia 18.05.2012 12:06

И еще момент на localhost, такой проблемы не возникает, только на сервере

beard 18.05.2012 12:09

Цитата:

Сообщение от MsVasia (Сообщение 175161)
И еще момент на localhost, такой проблемы не возникает, только на сервере

отлично кидайте линку, посмотрим

MsVasia 18.05.2012 12:13

http://onlineopros.ru/
поиск на HomePage, если с 1го раза не прокатило то жмем ctrl+f5 пару раз


Часовой пояс GMT +3, время: 09:07.