Посмотрите на ответ @ Pointy для реального решения, он был быстрее меня, мой ответ на самом деле не решит вашу проблему, я просто хотел бы отметить несколько моментов, на которые следует обратить внимание.
Постарайтесь правильно сделать отступ в своем коде, чтобы его было легко прочитать, посмотрев его через месяц.Теперь вы можете точно знать, что именно он делает, но в долгосрочной перспективе будет сложно разобраться с этим.
Маловероятно, что нельзя гарантировать, что одно и то же событие не сработает.дважды за одну и ту же миллисекунду я бы не использовал event.timeStamp
для генерации уникальных идентификаторов.Это просто личное предпочтение, хотя, вероятно, этого никогда не произойдет, я просто не люблю полагаться на таймеры для уникальности.У вас уже есть инкрементная переменная number
, вы должны использовать ее, которая определенно будет уникальной.
При записи HTML в строку я бы предпочел использовать правильную стандартную разметку.Используйте '
в качестве границ строки и "
для атрибутов HTML.
Наконец, внутри вашего условия if(month<10){...}
не переопределяйте переменную, которую вы уже определили в своей функции.Вероятно, это не выдает ошибку или не окажет какого-либо отрицательного эффекта, но мы можем только поблагодарить текущую прощающую реализацию javascript за это, переопределение не должно быть разрешено в той же области действия.инициализируйте код в функцию готовности jQuery, чтобы убедиться, что DOM и сам jQuery полностью загружены.
И извините за разглагольствование ...;)
$(function(){
var number = 0;
$('#add_date').click(function(event) {
number++;
var d=new Date();
var year = d.getFullYear();
var day = d.getDate();
var month = d.getMonth() + 1;
if (month<10) month = "0"+month;
if (day<10) day = "0"+day;
var fullyear = month+"/"+day+"/"+year;
// Insert @Pointy's solution in here...
});
});