Переменная из значения переменной
Добрый день,
Есть переменные: var num1 = 0; var num2 = 0; var num3 = 0; Есть картинки: <img src="..." id="num1"> <img src="..." id="num2"> <img src="..." id="num3"> При левом клике из картинок вытаскиваем ID:
$('img').live('click', function(e) {
var num = $(this).attr('id');
}
В чем собственно вопрос. Мне нужно из полученого ID сделать переменную и добавить к ней 1. Очевидно
$('img').live('click', function(e) {
var num = $(this).attr('id');
num++;
}
не дает никаких результатов. Как можно еще такое реализовать? Заранее благодарю. |
Зачем Ва каждый ID в отдельной переменной? Используйте массив.
var ids = [];
$('img').live('click', function(e) {
ids.push($(this).attr('id')); // если нужно не допускать существования одинаковых ID в массиве, добавить проверку
}
|
Так как я с массивами раньше не сталкивался вылезли новые проблемы. Попорядку:
var offence = []; // создаем массив offence
$('img').live('click', function(e) { //на левый клик
var skill = $(this).attr('id'); //вытаскиваем ID и записываем в переменную skill
if (jQuery.inArray(skill, offence) == -1) { //Если в массиве нет такого.
offence.push(skill, i++); //вписываем и добавляем 1.
}
});
Все-бы нечего, но тут возникает новая проблемка. Как изменить этот массив при повторном нажатии? После первого клика мы получаем: [ "skill", 1 ] При повторном нажатии нужно получить [ "skill", 2 ] Помимо этого есть еще третья проблема, мне нужно что-бы у каждого нового значения счет начинался с нуля. т.е. Счелкаем на первую картинку два раза и три раза на третью, получаем: [ "imgID1", 2, "imgID2", 3 ] |
Можешь обойтись и без этих переменных, а хранить эти счетчики "у самих картинок":
// начальные установки
$('img').data('num', 0);
// событие
$('img').live('click', function(e) {
var $this = $(this);
$this.data('num', $this.data('num') + 1);
}
|
Или можно также объектом :
var offence = {num1:0, num2:0, num3:0}; // создаем объект offence
$('img').live('click', function(e) { //на левый клик
var skill = $(this).attr('id'); //вытаскиваем ID и записываем в переменную skill
offence[skill] = offence[skill] + 1;
});
|
Все спасибо, сделал то что хотел, объектом.
|
| Часовой пояс GMT +3, время: 08:16. |