Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 11.02.2013, 14:56
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Упс. А слона то я и не приметил...
Image - встроенный объект, а вы его перезаписываете.
Хотя если объявлять его не как глобальный, то вполне можно пользоваться.
В любом случае, не нужно писать конструкторы на каждый чих. Объектный подход хорош, но в меру
Ответить с цитированием
  #12 (permalink)  
Старый 11.02.2013, 23:05
Кандидат Javascript-наук
Отправить личное сообщение для jeysmook Посмотреть профиль Найти все сообщения от jeysmook
 
Регистрация: 24.04.2012
Сообщений: 118

danik.js,
Спасибо все отлично применил, но вот еще один вопрос не по теме. Почему вы пользуетесь e.preventDefault();. И в чем отличие между e.preventDefault(); и return false;
Ответить с цитированием
  #13 (permalink)  
Старый 11.02.2013, 23:30
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,112

Сообщение от 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>
Ответить с цитированием
  #14 (permalink)  
Старый 12.02.2013, 11:29
Кандидат Javascript-наук
Отправить личное сообщение для jeysmook Посмотреть профиль Найти все сообщения от jeysmook
 
Регистрация: 24.04.2012
Сообщений: 118

рони,
Спасибо)
Ответить с цитированием
  #15 (permalink)  
Старый 12.02.2013, 11:33
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

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

Сообщение от jeysmook
Почему вы пользуетесь e.preventDefault();. И в чем отличие между e.preventDefault(); и return false;
В jQuery если не ошибаюсь оба варианта работают. preventDefault нагляднее. Плюс в addEventListener обработчиках нужно использовать именно его.
Ответить с цитированием
  #16 (permalink)  
Старый 12.02.2013, 12:33
Профессор
Отправить личное сообщение для tsigel Посмотреть профиль Найти все сообщения от tsigel
 
Регистрация: 12.12.2012
Сообщений: 1,398

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

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

Последний раз редактировалось tsigel, 12.02.2013 в 12:36.
Ответить с цитированием
  #17 (permalink)  
Старый 12.02.2013, 12:44
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от tsigel
для сравнения обращение к переменной занимает 1-2 мс
Чиво?? Цифры явно завышены на несколько порядков )
Вообще, резонно сохранять результат выборки.
Итого:
$(document).ready(function () {
    var $img = $('.img');
    $img.click(function(e){
          alert($img.index(this)+1);
          e.preventDefault();
    });
});
Ответить с цитированием
  #18 (permalink)  
Старый 12.02.2013, 12:56
Профессор
Отправить личное сообщение для tsigel Посмотреть профиль Найти все сообщения от tsigel
 
Регистрация: 12.12.2012
Сообщений: 1,398

Это цифры при работе в ИЕ 7-8
Ответить с цитированием
  #19 (permalink)  
Старый 12.02.2013, 13:16
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,112

Если уж оптимизировать то невычислять каждый раз индекс а сделать это один раз.
<!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

Последний раз редактировалось рони, 12.02.2013 в 13:33.
Ответить с цитированием
  #20 (permalink)  
Старый 12.02.2013, 13:27
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

рони, только инкремент убери.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как из строки содержащей namespace получить ссылку на объект? wwwboy Общие вопросы Javascript 2 07.12.2011 09:22
Как получить значение TD zsaz jQuery 3 16.11.2011 16:00
как получить загружений урл iframe или frame NOCaut Events/DOM/Window 0 15.11.2011 14:51
Как получить raw data с image? lyapharov Общие вопросы Javascript 2 07.04.2011 00:20
Динамически увеличивающиеся изображения: как реализовать? cforest Events/DOM/Window 6 24.06.2009 17:16