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
Форумы портала PHP.SU :: Версия для печати :: не получается прикрепить фотку
Форумы портала PHP.SU » Клиентская разработка » JavaScript & VBScript » не получается прикрепить фотку

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

1. p1us - 31 Октября, 2012 - 13:38:35 - перейти к сообщению
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....не понимаю
2. Zuldek - 31 Октября, 2012 - 14:21:58 - перейти к сообщению
А что вы хотите там увидеть?
Это число привязанное к длине массива: 1, 2.
arr[i] == 'scr1';
3. IllusionMH - 31 Октября, 2012 - 17:45:17 - перейти к сообщению
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. });
4. p1us - 31 Октября, 2012 - 20:04:35 - перейти к сообщению
да, надо было еще и с each получше разобраться) спасибо!
5. p1us - 01 Ноября, 2012 - 06:58:55 - перейти к сообщению
опять столько разбирался, оказывается не в ту function() поставил (i)

 

Powered by ExBB FM 1.0 RC1