したがって、ユーザーが分単位で時間を加算または減算でき、そのdivを複製して値を追加できるフォームがありますが、私の問題は、複製されたdivで関数が機能しないように見えることです。この関数は、最初のdivからのみ加算または減算します。
これがjsFiddleです:http://jsfiddle.net/W7w58/2/
+または-をクリックすると、機能が開始されます。
コードは次のとおりですが、jsFiddleを試してみると問題を理解しやすいと思います。
HTML:
<button id="clone-btn">Clone</button>
<div id="clone-div">
<a href="#" class="btn btn-subtract">-</a>
<a href="#" class="btn"><input type="text" class="input-field" id="input-field" name="input-field" value="0:00"></a>
<a href="#" class="btn btn-add">+</a>
</div>
jQuery:
/* for cloning */
$("#clone-btn").click(function() {
$('#clone-div').clone(true).insertAfter('#clone-div');
return false;
});
/* for the function */
var $input = $('.input-field');
$input.data('minutes', parseTimeString($input.val()));
function parseTimeString(str) {
var time = str.split(":");
return (parseInt(time[0])*60) + parseInt(time[1]);
}
$('.btn-add').on('click', function() {
changeTime(1);
});
$('.btn-subtract').on('click', function() {
changeTime(-1);
});
function changeTime(mins) {
var currentTime = parseInt($input.data('minutes')),
newTime = currentTime + mins,
minutes = (newTime % 60).toString(),
hours = (Math.floor(newTime / 60)).toString();
if (minutes.length === 0) {
minutes = "00";
} else if (minutes.length === 1) {
minutes = "0" + minutes;
}
$input.data('minutes', newTime).val(hours + ":" + minutes);
}
私はあなたが私に与えることができるすべての助けをいただければ幸いです:)。