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 Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
Ammiak
Отправлено: 24 Июня, 2012 - 19:38:41
Post Id


Частый гость


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


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




Здравствуйте, возник такой вопрос: есть div в который загружаются картинки, каждая картинка реализована как ссылка на более крупное изображение. Нужно чтобы при клике на картинку возвращался её порядковый номер в div'е и лишь затем - переход к крупному изображению.
Картинки имеют такой вид:
CODE (html):
скопировать код в буфер обмена
  1.  
  2. <div id="open_gallery">
  3. <a class="gallery" href="ссылка на увеличенное изображение"><span><img style="width:100px; height:50px" src="путь к изображению" /></span></a>';
  4. <a class="gallery" href="ссылка на увеличенное изображение"><span><img style="width:100px; height:50px" src="путь к изображению" /></span></a>';
  5. <!--и т.д.-->
  6. </div>
  7.  

Возвращаю порядковый номер изображения при клике по нему:
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. $('#open_gallery img').live('click', function(e) {
  3. e.preventDefault();
  4. var img_number = $('#open_gallery img').index(this);
  5. alert(img_number);
  6. });
  7.  

Но происходит сразу переход по ссылке к большому изображению, а порядковый номер не возвращается. Можно ли это как-нибудь исправить? заранее благодарю

(Отредактировано автором: 24 Июня, 2012 - 19:39:26)

 
 Top
DelphinPRO
Отправлено: 24 Июня, 2012 - 19:46:15
Post Id



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


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


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






-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
Ammiak
Отправлено: 24 Июня, 2012 - 19:53:21
Post Id


Частый гость


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


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




DelphinPRO
Пробовал так:
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. $('#open_gallery a').live('click', function() {
  3. var img_number = $('#open_gallery img').index(this);
  4. return false;
  5. alert(img_number);
  6. });
  7.  

все равно сразу переходит по ссылке Огорчение или я не так делаю?
 
 Top
IllusionMH
Отправлено: 24 Июня, 2012 - 19:55:52
Post Id



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


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


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




Ammiak, есть ссылка на пример?
Скопировал - получается все наоборот: никакого перехода, но сообщение с номером.
(Добавление)
в данном случае return false; сразу прерывает выполнение функции, и никакого alert'a уже не будет
 
 Top
Ammiak
Отправлено: 24 Июня, 2012 - 20:07:56
Post Id


Частый гость


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


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




Не, ссылки нет, делаю на локалхосте. Ну мне хотя бы просто алгоритм уяснить, как такое делается, ведь понятно что return false даже если сработает, полностью отменит переход по ссылке, что тоже не есть гуд
 
 Top
IllusionMH
Отправлено: 24 Июня, 2012 - 20:12:35
Post Id



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


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


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




Ammiak,так подробней объясните чего хочется?
Зачем порядковый номер, если тут же будет переход?
 
 Top
Ammiak
Отправлено: 24 Июня, 2012 - 20:28:05
Post Id


Частый гость


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


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




Постараюсь объяснить попонятнее Улыбка
Ситуация такова: как я уже указал, в div'e картинки: первая, вторая, третья и.т.д. в виде ссылок, ссылающихся на файл big_image.php. Цель: записать порядковый номер картинки, по которой кликаем в сессию, чтобы при переходе к big_image.php там его использовать и выводить картинку именно этого же порядкового номера, а если ещё проще, чтобы открывающееся увеличенное изображение соответствовало той миниатюре картинки, по которой мы кликаем
 
 Top
IllusionMH
Отправлено: 24 Июня, 2012 - 20:53:49
Post Id



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


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


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




Ammiak, я бы формировал ссылку еще на стороне php, при выводе страницы.
Тогда так же известен порядок. А если элементы еще подтягиваются через AJAX, то в запросе передавал бы имеющееся число элементов, и на стороне сервера продолжал бы нумерацию в ссылках.

При клике по картинке, сразу будет переход по ссылке типа /big_image.php?id=2
Как я понимаю, это число в сессию как раз в этот момент можно и записать.

для получения номера изображения и перехода по ссылке, нужно убрать e.preventDefault();
http://jsfiddle[dot]net/IllusionMH/EFvc2/
Ваш код работает как нужно

(Отредактировано автором: 24 Июня, 2012 - 21:02:52)

 
 Top
Ammiak
Отправлено: 24 Июня, 2012 - 21:33:28
Post Id


Частый гость


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


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




IllusionMH, Вам большое спасибо за то что подправили код, но вот что выяснил: здесь оказывается ещё и проблема в fancybox'е (он применяется к изображениям, и файл big_image.php открывается в модальном окне). Отключил фэнсибокс-работает как надо, обратно подключаю его-снова сразу переход по ссылке без вывода номера
 
 Top
IllusionMH
Отправлено: 24 Июня, 2012 - 23:02:27
Post Id



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


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


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




Ammiak, код я не трогал. Просто скопипастил, и добавил воды.
С fancybox к сожалению не сталкивался, сейчас попробовал повторить ошибку - не прокатило.

Если есть возможность использовать jQuery версии 1.7 и выше, можно попробовать переписать присвоение обработчика через http://api[dot]jquery[dot]com/on/][dot]on(), или для начала проверить, происходит ли присвоение обработчика, попытавшись вывести обычный alert

И если уж нужен переход по ссылке, то может убрать фансибокс с этих ссылок?

(Отредактировано автором: 24 Июня, 2012 - 23:03:23)

 
 Top
tuareg
Отправлено: 24 Июня, 2012 - 23:41:32
Post Id


Участник


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


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




fancybox работает без перезагрузки страницы, а вы ее перезагружаете. Так она не будет работать.
добавление
А ... я понял Радость
Вы хотите скрыть путь к картинке?
Так не прокатит. Вы должный сразу сформировать ссылку на большую картинку.
Можно попробовать как вариант я не проверял. На стороне сервера сразу формировать ссылку типа
CODE (html):
скопировать код в буфер обмена
  1.  
  2. <a href="/big_image.php?id=1"><span>....
  3.  

где id=1 сразу номер картинки
Тогда может и получится

(Отредактировано автором: 24 Июня, 2012 - 23:50:42)

 
 Top
Ammiak
Отправлено: 25 Июня, 2012 - 08:56:55
Post Id


Частый гость


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


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




Цитата:
И если уж нужен переход по ссылке, то может убрать фансибокс с этих ссылок?

да, без фэнсибокса работает норм, но к сожалению нужно открывать полноразмерную картинку в модальном окне
tuareg но если сразу сформировать GET-парамтр id=1, то при выборе скажем второй картинки будет всё равно открываться первая? При использовании фэнсибокса я не могу получить эту двойку, чтобы записать её в сессию или передать как GET-параметр, скрипт сразу переходит по ссылке, игнорируя этот кусок кода:
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. var img_number = $('#open_gallery img').index(this);
  3. alert(img_number);
  4.  
 
 Top
tuareg
Отправлено: 25 Июня, 2012 - 09:18:27
Post Id


Участник


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


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




У Вас по другому не получится. И потом для первой будет id=1, для второй id=2.
Но это так, может кто-то еще что ответит
 
 Top
Ammiak
Отправлено: 25 Июня, 2012 - 09:44:38
Post Id


Частый гость


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


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




если кликнуть скажем по 4-й картинке, то как передать на сервер четверку в качестве GET-параметра id? собственно один этот вопрос решить не получается

(Отредактировано автором: 25 Июня, 2012 - 09:45:36)

 
 Top
tuareg
Отправлено: 25 Июня, 2012 - 09:57:30
Post Id


Участник


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


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




Попробуйте такой вариант.
http://jsfiddle[dot]net/tuareg/MyKk6/
Если что-то не понятно срашивайте
Помните, что индекс счиатеся с 0

(Отредактировано автором: 25 Июня, 2012 - 09:58:04)

 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 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