Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Выделение элементов по клику при зажатой кнопке клавиатуры (https://javascript.ru/forum/dom-window/30759-vydelenie-ehlementov-po-kliku-pri-zazhatojj-knopke-klaviatury.html)

M03G 14.08.2012 17:46

Выделение элементов по клику при зажатой кнопке клавиатуры
 
Есть несколько дивов. Они в ссылках. по клику открывается попап:

<a href='#' onclick="PopupCenter('task_info.php?id=48', 'title',500,350)">
<div class='draggable' ><p>30</p></div>
</a>


Необходимо следующее:
Зажимаем на клавиатуре, например, ctrl. После этого делаем клик на div, но попап не открывается, а какой либо параметр из тега див записывается в какой-то массив. Жмакаем на следующий див - такой же параметр пишется дальше в массив. И так в последователньость, пока не будет отпущен ctrl. Как только ctrl отпущен, массив передаётся гетом в какой-нить php-скрипт...
Кто подскажет куда копать?

bes 14.08.2012 18:50

<body>
<style>
	div {
		background: lightgreen;
		border: solid 1px;
		height: 200px;
		width: 200px;
		display: inline;
		cursor: pointer;
	}
</style>

<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
<div>6</div>

<script>
window.onload = function () {
	var mas = [];
	
	document.body.onclick = function (e) {
		e = e || event;
		var target = e.target || e.srcElement;
		if (e.ctrlKey == true)  {
			mas.push(target.innerHTML);
		}
	}

	document.body.onkeyup = function (e) {
		e = e || event;
		if (e.keyCode == 17) {
			alert(mas);
			mas = [];
		}
	}
}
</script>

Dim@ 14.08.2012 18:52

bes,
:lol: :lol: промахнулся, очень жестко промахнулся -
e = e || event;

bes 14.08.2012 19:25

Цитата:

Сообщение от Dim@
bes,
промахнулся, очень жестко промахнулся -
e = e || event;

Что не так? не вкурил

Dim@ 14.08.2012 19:27

bes,
:blink: :blink: ты издеваешься?
e = e || window.event
- ты обычно так пишешь (я тоже) :lol: :lol:

bes 14.08.2012 19:34

Цитата:

Сообщение от Dim@
bes,
ты издеваешься?
e = e || window.event
- ты обычно так пишешь (я тоже)

:) я уж так давно не пишу, глобальная переменная - свойство window, проверь в IE работает или нет

Aetae 14.08.2012 20:03

Dim@,
поосторожнее с культом карго, чтобы быть хорошим программистом надо не просто копировать типичные шаблоны, но и понимать их суть и смысл тех или иных действий.

window.event нужен только в том случае если вверх по цепочке scope'оф где-то назначена собственная переменная event. Мы обычно такого не допускаем, но на всякий случай если скрипт может использоваться где-то ещё можно и написать.
В целом же это написание на мой взгляд осталось от тоже стандартного шаблона:
function(event){
  event = event || window.event
}
где window.event уже обязателен всвязи с перекрытием основого event.

oneguy 14.08.2012 20:53

Aetae,
Не забывайте ещё о том, что где-то ещё может быть назначена собственная переменная window :lol:

Aetae 14.08.2012 21:03

Цитата:

Сообщение от oneguy (Сообщение 197630)
Aetae,
Не забывайте ещё о том, что где-то ещё может быть назначена собственная переменная window :lol:

Всяко бывает, но тут уж мало чем поможешь)

M03G 15.08.2012 11:15

Большое спасибо за помощь!


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