Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Как получить index изображения? (https://javascript.ru/forum/jquery/35452-kak-poluchit-index-izobrazheniya.html)

danik.js 11.02.2013 14:56

Упс. А слона то я и не приметил...
Image - встроенный объект, а вы его перезаписываете.
Хотя если объявлять его не как глобальный, то вполне можно пользоваться.
В любом случае, не нужно писать конструкторы на каждый чих. Объектный подход хорош, но в меру :)

jeysmook 11.02.2013 23:05

danik.js,
Спасибо все отлично применил, но вот еще один вопрос не по теме. Почему вы пользуетесь e.preventDefault();. И в чем отличие между e.preventDefault(); и return false;

рони 11.02.2013 23:30

Цитата:

Сообщение от jeysmook
ТО есть выдает index элемента в div а не в общем body.

Так и вычисляйте индекс в общем массиве данных элементов.
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8" />
  <title></title>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$(function(){
       $('.img').click(function(e){
              alert($('.img').index(this)+1);
              e.preventDefault();
       });
});
});
</script>
</head>
<body>
<div class="text">
    <div>
        Тут какой то текст!Тут какой то текст!Тут какой то текст!Тут какой то текст!Тут какой то текст!Тут какой то текст!
        <a href="" class="img"><img src="http://javascript.ru/forum/images/smilies/victory.gif" /></a>
    </div>
    <div>
        Тут какой то текст!Тут какой то текст!Тут какой то текст!Тут какой то текст!Тут какой то текст!Тут какой то текст!    Тут какой то текст!Тут какой то текст!Тут какой то текст!Тут какой то текст!Тут какой то текст!Тут какой то текст!
        <a href="" class="img"><img src="http://javascript.ru/forum/images/smilies/victory.gif" /></a>
        <a href="" class="img"><img src="http://javascript.ru/forum/images/smilies/victory.gif" /></a>
    </div>
</div>

</body>
</html>

jeysmook 12.02.2013 11:29

рони,
Спасибо)

danik.js 12.02.2013 11:33

Да, что-то я намудрил ))

Цитата:

Сообщение от jeysmook
Почему вы пользуетесь e.preventDefault();. И в чем отличие между e.preventDefault(); и return false;

В jQuery если не ошибаюсь оба варианта работают. preventDefault нагляднее. Плюс в addEventListener обработчиках нужно использовать именно его.

tsigel 12.02.2013 12:33

Цитата:

Сообщение от рони
$('.img')

Это будет медленно работать. Встречая такой код браузер пробегает по всему документу в поиске указанного селектора, при длине документа строк в 500 эта операция занимает порядка 100 мс (цифра зависит от компьютера пользователя) (для сравнения обращение к переменной занимает 1-2 мс).

Если эта операция будет выполняться на сайте пару раз, то ок, а если это частая операция, то имеет смысл записать их в массив и работать с номером в массиве.

danik.js 12.02.2013 12:44

Цитата:

Сообщение от tsigel
для сравнения обращение к переменной занимает 1-2 мс

Чиво?? Цифры явно завышены на несколько порядков :))
Вообще, резонно сохранять результат выборки.
Итого:
$(document).ready(function () {
    var $img = $('.img');
    $img.click(function(e){
          alert($img.index(this)+1);
          e.preventDefault();
    });
});

tsigel 12.02.2013 12:56

Это цифры при работе в ИЕ 7-8 ;)

рони 12.02.2013 13:16

:write: Если уж оптимизировать то невычислять каждый раз индекс а сделать это один раз.
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8" />
  <title></title>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
$(function(){
      $('.img').each(function (index) {
        $(this).click(function (e) {
            alert(index+1);
            e.preventDefault();
        });
        });
        });
</script>
</head>
<body>
<div class="text">
    <div>
        Тут какой то текст!Тут какой то текст!Тут какой то текст!Тут какой то текст!Тут какой то текст!Тут какой то текст!
        <a href="" class="img"><img src="http://javascript.ru/forum/images/smilies/victory.gif" /></a>
    </div>
    <div>
        Тут какой то текст!Тут какой то текст!Тут какой то текст!Тут какой то текст!Тут какой то текст!Тут какой то текст!    Тут какой то текст!Тут какой то текст!Тут какой то текст!Тут какой то текст!Тут какой то текст!Тут какой то текст!
        <a href="" class="img"><img src="http://javascript.ru/forum/images/smilies/victory.gif" /></a>
        <a href="" class="img"><img src="http://javascript.ru/forum/images/smilies/victory.gif" /></a>
    </div>
</div>

</body>
</html

danik.js 12.02.2013 13:27

рони, только инкремент убери.


Часовой пояс GMT +3, время: 21:26.