Как задать функцию на клик с параметрами в виде значений
Здравствуйте!
Как задать функцию на клик с параметрами в виде значений, а не в виде переменных? Поясню: У меня есть множество однотипных элементов box0..box100, нужно чтобы по клику на любой из них выполнялась функция, в которую нужно передать номер элемента. Если сделать так: for(s=0; s<101; s++){ $("#box"+s).click(function(){mapzoom(s);}); }, то при клике в mapzoom передастся текущие значение s, не зависимо от нажатого элемента. А мне нужно, чтоб при нажатии, например, на box16 в mapzoom передавалось 16. Посоветуйте пожалуйста красивое решение :cray: |
Пока зделал вот-так, работает, конечно, нормально
$("#box"+s).attr("onclick", "mapzoom("+s+");"); Но, вопрос открытый. При назначении функций через JQ, как зафиксировать значения в цикле? |
А переменная, это не значение? :)
Номер, это собственно индекс элемента в наборе, по которому произведен щелчок. В jQuery есть метод возвращающий индекс - index(). А чтобы работать с индексами, нужно обращаться к коллекции. $("#box"+s).attr("onclick", "mapzoom("+s+");"); - это несуразица, и нужно, например, для элементов с классом "myclass" поступить так: $('div.myclass').click(function() { func($(this).index()) }) Если работать с id элементов и при этом номер привязанный к id может быть и не последовательным, то лучше задавать имена id например так - box-0, box-6, box-7... Такой селектор удобен для выбора среди boxmain и прочих: $('[id|=box]').click(function() { func(this.id.split('-').pop()) }) |
Цитата:
|
Часовой пояс GMT +3, время: 22:53. |