结果
感谢你们(@timmyRS和@LTasty)提供帮助。
我正在创建一系列在航班起飞前发生的运输皮卡。
出发时间仍然存在,用于根据之前的分钟数指示接送时间。
我的出发点是;
<label>Flight Departs</label>
<input type="text" class="tour-time" value="10 AM" />
<hr />
<div class="pickups">
<div><label>Pickup Time <span class="pickup-time"></span></label>
<input type="text" class="pickup-minutes" placeholder="number of minutes before flight departs" />
</div>
</div>
<a href="#" class="add-pickup">Add Pickup</a>
添加取件链接通过附加添加额外的取件时间。
我的问题
我想为每个添加的取件点单独更新取件时间。
我有正确计算的时间,但它们都一起更新。正如您在下面的屏幕截图中看到的那样。第一个接送时间是正确的(在上午10点之前20分钟=上午9点40分),但它也会改变第二个接送时间,应该是上午9:30。
请参阅FIDDLE
谢谢。
答案 0 :(得分:1)
您的错误很容易被发现,因为您实际上只是从第一个.pickup-minutes
元素计算并将其放入每个.pickup-time
元素中。使用简单的each
函数解决了我的问题:
$(document).on('keyup', '.tour-time, .pickup-minutes', function()
{
$(".pickups").children().each(function()
{
console.log(this);
var tourtime = $('.tour-time').val();
var minutes = $(this).find('.pickup-minutes').val();
ctime = moment(tourtime, 'h:mm A').subtract(minutes, 'minutes').format('h:mm A');
$(this).find('.pickup-time').html(ctime);
});
});
另外:我将减法方法更改为substract(minutes, 'minutes')
,因为旧方法已弃用。
答案 1 :(得分:1)