所以我有一个表单,用户可以在几分钟内添加或减去时间,他们还可以克隆该 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);
}
我会很感激你能给我的所有帮助:)。