Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #21 (permalink)  
Старый 02.03.2014, 04:19
Аватар для Vlasenko Fedor
Профессор
Отправить личное сообщение для Vlasenko Fedor Посмотреть профиль Найти все сообщения от Vlasenko Fedor
 
Регистрация: 13.03.2013
Сообщений: 1,572

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

Сообщение от Poznakomlus
ты вешаешь на каждый элемент обработчик, а я к каждому элементу добавляю вызов функции приведи аргументы, что твой вариант лучше
У меня обработчик один. На все элементы навешиватеся всего лишь ссылка на него.

В твоем же случае создается по обработчику на элемент. Причем со всеми недостатками eval'а. А также неявно создается несколько with(){} блоков, что тоже не есть гуд.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #23 (permalink)  
Старый 02.03.2014, 13:02
Аспирант
Посмотреть профиль Найти все сообщения от Maxmaxmaxmaximus8
 
Регистрация: 22.02.2014
Сообщений: 96

Сообщение от danik.js
Почему никто не юзает
Потому что [].slice.apply(arguments, 2) ты можешь врым параметром передавать с какого места делать срез. Этот способ болеемощный. для arrayLike обьектов он не нужен, но все привыкли писать так и не хотят тратить время на определение где какой способ использовать. я думаю
Ответить с цитированием
  #24 (permalink)  
Старый 02.03.2014, 13:33
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

Maxmaxmaxmaximus8, с forEach гениальный вариант!

<!DOCTYPE HTML>
<html>
  <head></head>
  <body>
    <div class="a">Div 1</div>
    <div class="a">Div 2</div>
    <div class="a">Div 3</div>
    <div class="a">Div 4</div>
    <div class="a">Div 5</div>

    <script>
	var a = document.querySelectorAll('div.a');
    [].forEach.call(a, function(e, i) {
		e.onclick = function() {
			alert('Элемент ' + i + ': ' + e.textContent);
		}
	});
    </script>

  </body>
</html>

Последний раз редактировалось ruslan_mart, 02.03.2014 в 13:38.
Ответить с цитированием
  #25 (permalink)  
Старый 02.03.2014, 17:39
Аспирант
Посмотреть профиль Найти все сообщения от Maxmaxmaxmaximus8
 
Регистрация: 22.02.2014
Сообщений: 96

кококококомбо

<!DOCTYPE HTML>
<html>
  <head></head>
  <body>
    <div class="a">Div 1</div>
    <div class="a">Div 2</div>
    <div class="a">Div 3</div>
    <div class="a">Div 4</div>
    <div class="a">Div 5</div>

    <script>
    var elements = [].slice.call(document.querySelectorAll('div.a'));
    var listener = function () {
          alert(elements.indexOf(this))
    };

    elements.forEach(function (element) {
        element.addEventListener('click', listener)
    });
    </script>

  </body>
</html>
Ответить с цитированием
  #26 (permalink)  
Старый 04.03.2014, 09:34
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

Maxmaxmaxmaximus8, а почему сразу не [].forEach.call? Или есть подвох?
Ответить с цитированием
  #27 (permalink)  
Старый 04.03.2014, 09:42
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от Ruslan_xDD
подвох?
[].indexOf.call?
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #28 (permalink)  
Старый 04.03.2014, 10:07
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

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

Сообщение от danik.js
Почему никто не юзает Array.apply(null, arrayLike) ??
Сообщение от Maxmaxmaxmaximus8
Потому что [].slice.apply(arguments, 2)
Сегдня обнаружил, что это не работает с DOM в IE8.
Так что юзаем мой вариант Array.apply(null, nodeList)
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #30 (permalink)  
Старый 17.11.2014, 20:10
Новичок на форуме
Отправить личное сообщение для Pechen Посмотреть профиль Найти все сообщения от Pechen
 
Регистрация: 16.11.2014
Сообщений: 5

я новичок в джаве --- подскажите чем плох мой код для такого случая?
<!DOCTYPE HTML>
<html>
  <head></head>
  <body>
    <div class="a">Div 1</div>
    <div class="a">Div 2</div>
    <div class="a">Div 3</div>
    <div class="a">Div 4</div>
    <div class="a">Div 5</div>

    <script>
	var elem = document.getElementsByTagName('div');
	var elements = [];
	for(var i=0; i<elem.length;i++){
		var option = elem[i].getAttribute('class');
		if(option=='a'){
			elements.push(elem[i]);
		}
	}
	for(var j=0;j<elements.length;j++){
		elements[j].onclick  = function () {
			alert(elements.indexOf(this));
			}
	}
    </script>
  </body>
</html>
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
При клике ссылки, открыть DIV блок, и при клике ещё раз, закрыть его Simon Общие вопросы Javascript 59 28.05.2017 17:31
Как получить innerHTML при клике prope Общие вопросы Javascript 3 10.01.2014 17:13
Изменение размера элемента при клике Derekovich Элементы интерфейса 25 05.12.2013 20:45
Смена фона картинки при клике на иконку Letto Элементы интерфейса 2 08.11.2013 18:31
Изменение фона элемента при клике. psydo Элементы интерфейса 8 28.06.2012 23:53