Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Js в foreach
юрьич  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Местный житель
****

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 163
Пользователь №: 35076
На форуме: 4 года, 2 месяца, 26 дней
Карма:




Здравствуйте. Не подскажите как правильно сделать следующее. Есть file.tpl в Smarty шаблоне. В нём в цикле я пытаюсь сделать такое
{foreach key=aid item=article from=$articles}
<div class="block">{$article.title}</div>
var img = 'url({$article.image})'
$('.block').css('background-image',img).css('background-size','cover')
</script>
{/foreach}

но значение в var img не совпадает со значением в foreach.Т.е. цикл должен выводить три блока с тремя титлами статей к которым привязаны картинки по id (и это работает), которые скрипт должен сделать фоном.Но {$article.image} в var img попадает не по id, а как попало. Т.е. нет синхронизации.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
kaww  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1755
Пользователь №: 20757
На форуме: 6 лет, 10 месяцев, 2 дня
Карма: 184




юрьич, скорее не как попало а последняя, потому что ты в каждой итерации всем бокам .block делаешь фон img, которую, кстати, объявляешь тоже при каждой итерации. Непонятно зачем вообще здесь нужен js. Можно и без него.
{foreach key=aid item=article from=$articles}
<div class="block" style="background-image: url({$article.image}); background-size:cover;">{$article.title}</div>
{/foreach}
PMПисьмо на e-mail пользователю
    1   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
юрьич  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Местный житель
****

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 163
Пользователь №: 35076
На форуме: 4 года, 2 месяца, 26 дней
Карма:




Блин, большое спасибо, действительно, что то я запарился с этим js, по другой теме уже дня два возился и по ходу не могу остановиться.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
sergeiss  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Сидел он, дум великих полон - и вдаль глядел
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 14968
Пользователь №: 4190
На форуме: 8 лет, 9 месяцев, 28 дней
Карма: 443




юрьич, во-первых, у тебя в начальном коде нет открывающего тэга <script>. Во-вторых,как это работает? Сначала создается вся страница. По ходу дела запускается встроенный JS. Но никто тебе не даст гарантии, что код будет запущен сразу же, как только будут созданы элементы ДИВ. А ты постоянно перезаписываешь содержимое переменной img. Поэтому получается так, скорее всего, что у тебя уже сколько-то элементов ДИВ созданы (или даже все), после чего запускается JS, сразу для всех уже созданных ДИВов.....
Короче говоря, чтобы не вдаваться во все подробности smile.gif, так скажу: для каждого блока надо иметь уникальную переменную img. Ну, типа img1, img2.... Используй что-то уникальное, что у тебя есть. Тогда всё сработает так, как ты ожидаешь.
Да, в данном случае kaww всё правильно сказал. Но в другой раз тебе может понадобиться нечто, подобное тому, что ты пытался сделать.


--------------------
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
PMICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса