Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   необходимо действие на второй клик (https://javascript.ru/forum/dom-window/18240-neobkhodimo-dejjstvie-na-vtorojj-klik.html)

sntyjr 22.06.2011 21:22

необходимо действие на второй клик
 
вот, к примеру есть картинка, при клике к переменной "m" добавляется некое число, не важно какое.
Требуется сделать так, чтобы при втором клике это приплюсованное число "отплюсовалось", т.е. "m" стала такой же, как и была до первого клика.

Заранее спасибо!

<img src='http://javascript.ru/forum/images/ca_serenity/misc/logo.gif' onclick='m+=10; this.onclick=null' width="200px"/>

trikadin 23.06.2011 02:09

<img src='http://javascript.ru/forum/images/ca_serenity/misc/logo.gif' onclick='toggleM()' width="200px"/>

<script>
m= 10;
a= 5;
function toggleM() {
  m+=a;
  a= -a;
  alert(m);
};
</script>

sntyjr 23.06.2011 21:46

Спасибо за помощь!

Возможно я просто что-то не понимаю, но для каждой такой картинки мне нужна своя переменная?

Получается мне это не подходит, т.к картинок у меня таких много.

trikadin 24.06.2011 00:09

Можно сделать через атрибуты (грязно, но просто) или через замыкания (сложно, зато семантически правильно).

Через атрибуты:
<script>
function toggleM(img) {
 var m= +img.getAttribute("m");
 var a= +img.getAttribute("a");
 m+=a;
 a=-a;
 alert(m);
 img.setAttribute("m", m);
 img.setAttribute("a", a);
};
</script>
<img src='http://javascript.ru/forum/images/ca_serenity/misc/logo.gif' onclick='toggleM(this)' width="200" m="10" a="5"/>
<img src="http://img.yandex.net/i/www/logo.png" onclick="toggleM(this)" width="200" m="7" a="3" />


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