Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: не получается прикрепить фотку

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
p1us
Отправлено: 31 Октября, 2012 - 13:38:35
Post Id



Гость


Покинул форум
Сообщений всего: 120
Дата рег-ции: Авг. 2011  


Помог: 0 раз(а)




CODE (javascript):
скопировать код в буфер обмена
  1. var arr = new Array('scr1', 'scr2');
  2.  
  3.  
  4. $.each(arr, function(){
  5.         for(i=0; i<arr.length; i++){
  6.                 $('#'+this).click(function(){
  7.                         $(this).css({   'border-right': '1px solid #fff',
  8.                 'background':'#fff url(../images/' + i + '.png) no-repeat 50% 30%'});
  9.                 });
  10.         }
  11.  
  12. });


конкретно в строке
CODE (javascript):
скопировать код в буфер обмена
  1. 'background':'#fff url(../images/' + i + '.png) no-repeat 50% 30%'});

если поменять 'i' на 0, то подключается фаил 0.png и все ок, но при i как есть ничего не работает, при alert(i) в конце пишет 2....не понимаю
 
 Top
Zuldek
Отправлено: 31 Октября, 2012 - 14:21:58
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2122
Дата рег-ции: Июнь 2010  


Помог: 50 раз(а)




А что вы хотите там увидеть?
Это число привязанное к длине массива: 1, 2.
arr[i] == 'scr1';

(Отредактировано автором: 31 Октября, 2012 - 14:25:01)

 
 Top
IllusionMH
Отправлено: 31 Октября, 2012 - 17:45:17
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




p1us, основная причина в том, что стили задаются только при клике уже после того как сработает циклы(два вложенных цикла, зачем?) и переменная i будет выдергиваться из замыкания, а не якобы текущий индекс элемента массива.
Это распространенная ошибка, читать тут
Зачем внутренний цикл который навешивает кучу одинаковых событий?

CODE (javascript):
скопировать код в буфер обмена
  1. var arr = ['scr1', 'scr2', 'scr3', 'scr4', 'scr5', 'scr6'];
  2.  
  3. $.each(arr, function(i) {
  4.     $('#' + this).click(function() {
  5.         $(this).css({   'border-right': '1px solid #fff',
  6.                 'background':'#fff url(../images/' + i + '.png) no-repeat 50% 30%'});
  7.     });
  8. });

(Отредактировано автором: 31 Октября, 2012 - 17:45:50)

 
 Top
p1us
Отправлено: 31 Октября, 2012 - 20:04:35
Post Id



Гость


Покинул форум
Сообщений всего: 120
Дата рег-ции: Авг. 2011  


Помог: 0 раз(а)




да, надо было еще и с each получше разобраться) спасибо!
 
 Top
p1us
Отправлено: 01 Ноября, 2012 - 06:58:55
Post Id



Гость


Покинул форум
Сообщений всего: 120
Дата рег-ции: Авг. 2011  


Помог: 0 раз(а)




опять столько разбирался, оказывается не в ту function() поставил (i)

(Отредактировано автором: 01 Ноября, 2012 - 07:17:10)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« JavaScript & VBScript »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB