Все решения укупорки хороши (они работают просто отлично), но я подумал, что укажу другой способ сделать это.Вы также можете получить доступ к объекту, который вызвал событие, и извлечь номер из идентификатора объекта.Это будет работать примерно так:
$('#box_'+i).bind('mousedown',function(e){
var matches = this.id.match(/_(\d+)$/);
var num = parseInt(matches[1], 10);
if(e.which == 3) theFunction(e, num);
});
Или, если вы действительно хотите быть объектно-ориентированным (и использовать удобную возможность jQuery), вы можете сохранить значение индекса как отдельный элемент данных, связанный с объектом.и получите его оттуда позже.
$('#box_'+i).data("index", i).bind('mousedown',function(e){
if(e.which == 3) theFunction(e, $(this).data("index"));
});
Рабочая демонстрация второго метода здесь: http://jsfiddle.net/jfriend00/wVDHw/