Почему данное условие не верно
Здравствуйте. Научите меня пожалуйста как нужно обрабатывать условие на равенство? Вот допустим есть код:
$('.navig img').click(function(){ for (var i = 0; i<$(this).size(); i++) if ( $(this)==$('.navig img:eq('+i.toString+')') ) { alert('Клик по '+i.toString+'ому изображению'); }); Но он не рабочий. Почему? На страничке 4 картинки. Все они в блоке div с классом '.navig'. Как такое условие обработать? |
Цитата:
Потому как не всякая писанина вообще будет работать, а тем паче решать определеные задачи должным образом. Например задачку по выводу сообщения "Клик по N-ому изображению" вообще лучше решать не так... :) Цитата:
Принципа всего 2. 1. Не лезьть туда, куда не нужно. 2. Не искать того, чего там нет. |
Цитата:
1)Ну вот смотрите, сначала я так понимаю нужно селектором выбрать все нужные изображения: $(.navig img) // Это есть 2)Далее повесить к этому массиву обработчик. Это тоже есть. 3)Далее перебираем все элементы этого массива и сравниваем тот элемент по которому был клик со всеми остальными. if ( $(this)==$('.navig img:eq('+i.toString+')') )//Это есть 4)Далее производим действия с данным объектом. Это alert. Что не так? Цитата:
|
Цитата:
Зачем всегда (!) при клике шариться в каком-то цикле? Ведь уже сам обработчик уже можно задать с нужным параметром и никаких циклов потом не понадобится... Цитата:
|
Цитата:
|
Цитата:
|
А что, недостаточно данных, что есть 4 картинки внутри блока с классом .navig, и нужно повесить обработчик клика на каждую из них, и выводить алерт с номером картинки?
|
Цитата:
|
Щас, пару минут.
|
Вложений: 1
Вот прикрепляю файл...
|
Решатель, не нужно ничего "крепить"... Пример размещай тут. Примеров, как это сделать, валом на этом форуме.
Даже в последних сообщениях, в том числе и моих... |
html:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Документ без названия</title> <script src="Untitled-2.js" type="text/javascript"></script> <script src="jquery.js" type="text/javascript"></script> <link href="Untitled-3.css" type="text/css" rel="stylesheet" /> </head> <body> <div class="navig"> <img src="check-on.png" width="35" height="35" alt="kartinka"/> <img src="check-on.png" width="35" height="35" alt="kartinka"/> <img src="check-on.png" width="35" height="35" alt="kartinka"/> <img src="check-on.png" width="35" height="35" alt="kartinka"/> </div> </body> </html> javascript: $(document).ready(function(e) { $('.navig img').click(function(){ //Что тут должно быть чтобы при клике по i-ой картинке выводился alert с ее номером? }); }); |
Решатель, если я скопирую твой пример... Соберу его в кучу... Он не сможет заработать у меня. :)
Но всетаки хоть что-то... :) |
Ну так поможете?
|
Как вариант...
<!DOCTYPE html> <html> <head> <title>test</title> <script src="http://code.jquery.com/jquery-latest.js"></script> <style type="text/css"> </style> <script type='text/javascript'> $(document).ready(function() { $('.navig img').each(function(i) { $(this).click(function() { alert('Клик по '+(i+1)+'-ому изображению'); }); }); }); </script> </head> <body> <div class="navig"> <img src="http://javascript.ru/forum/images/smilies/smile.gif" width="35" height="35" alt="kartinka"/> <img src="http://javascript.ru/forum/images/smilies/smile.gif" width="35" height="35" alt="kartinka"/> <img src="http://javascript.ru/forum/images/smilies/smile.gif" width="35" height="35" alt="kartinka"/> <img src="http://javascript.ru/forum/images/smilies/smile.gif" width="35" height="35" alt="kartinka"/> </div> </body> </html> Т.ч. начинай учиться делать нормальные тестовые примеры... ;) |
Аке:)
Спасибо большое! |
$(document).ready(function() { $('.navig img').click(function() { alert('Клик по '+($(this).index()+1)+'-ому изображению'); }); }); |
Цитата:
|
Часовой пояс GMT +3, время: 10:11. |