2013-08-16 6 views
0

Следующий код работает:Styling динамически дивы с JQuery

$('#class').on('mouseover', '.ado', function() { 
var colors = ["#848484", "#088a08", "#ffbf00", "#a901d8", "#ff0000", "#0000ff"]; 
    var i = 0; 
    $('.ado').each(function(i) { 
    $(this).css({'border-left-width' : '5px', 'border-left-style' : 'solid', 'border-left-color' : colors[i]}); 
    i = (i + 1)%colors.length; 
    }); 
}); 

дивы с классом .ado генерируются динамически в DIV #class (который существует на странице загрузки) и стили кода каждый экземпляр с другой цветной левая граница. Проблема в том, что я не могу заставить это работать при загрузке - только при наведении курсора мыши (или щелчке и т. Д.). Я понимаю с сайта jQuery, что «загрузка» является одним из событий, которые не пузырятся, поэтому .on('load', '.ado', function() { не работает. Как я могу получить стиль, который будет применяться при загрузке страницы без каких-либо действий пользователя?

Спасибо.

ответ

0

Вы можете вручную инициировать событие курсора, эти элементы

$('#class .ado').trigger('mouseover') 
+0

'SetTimeout (функция() { $ ('. Лукаво») .trigger ('mouseover'); }, 3000); ' - это работает, но функция 'setTimeout' - это не очень хорошая идея. Использование '$ (document) .ready (function()' не работает, возможно, потому, что динамическая загрузка следует за геолокацией (с всплывающим окном для согласия пользователя) - и поэтому setTimeout, вероятно, не является правильным решением (don не знаю, сколько времени пользователь примет, чтобы принять). Я пробовал '('#class'). ajaxStop (function()' - но и не повезло. Кажется, мне нужно найти знак, загруженный после того, как пользователь принял геолокацию. Спасибо за помощь. – sideroxylon

+0

@sideroxylon Как загружаются элементы '.ado', через запрос ajax? –

+0

Решенный! Я поставил ваш код в неположенное место - я добавил это сразу после кода, который добавляет класс '.ado'. Прекрасно работает. Спасибо. – sideroxylon