Вот слегка измененная версия, которая должна делать то, что вы ищете.В Javascript / Coffeescript всегда следует помнить о том, в какой области будет выполняться ваш код. В этом случае очень важно использовать ключевое слово do
, чтобы переменная iter
была правильно перехвачена.Без этого, когда вы щелкаете мышью по любой идее, она всегда клонирует последнюю идею, потому что к тому моменту, когда обработчик щелчка действительно выполнится, iter
достигнет конца цикла.
ideas = document.getElementByClassName("idea")
for iter in [0...ideas.length]
do (iter) ->
ideas[iter].click -> ideas[iter].clone().appendTo('.container');
Вотмодифицированная версия, которая немного чище.jQuery может обработать всю эту итерацию за вас.
$('.idea').click ->
$(@).clone().appendTo('.container')
Что вы пытаетесь сделать с частью 'get_id'?Я просто игнорирую это, поэтому дайте мне знать, если я неправильно понял.
Редактировать:
Чтобы клонировать только один раз, самый простой способ - это использовать jQuery's 'one' метод вместо 'bind'.
$('.idea').one 'click', ->
$(@).clone().appendTo('.container')