上一篇中我们已经可以将左边的未完成清单移动到右边的已完成清单,
也可以将已完成清单返回到未完成清单。
这一篇中我们要来接着完成资料的状态
当老板完成餐点的时候会点选checkbox表示已经完成了,
所以我们要在chekbox中加入事件,将完成的资讯给记录下来。
function undo_order_item(h_id, b_id, item, count) {
cb_id =`cb_${h_id}_${b_id}`
item_html =`
<label for='${cb_id}' id='for${cb_id}' class="list-group-item list-group-item-primary">
<input id='${cb_id}' class="form-check-input me-1" type="checkbox" name="item_checkbox" value="">
${item} * ${count}
</label>
`
return item_html
}
将表头的id 跟餐点的id传入写在checkbox
的id中,
另外给checkbox
name。
3. 给chekbox
新增change事件
$('#undo_list').on("change", 'input[name="item_checkbox"]', function () {
//取得表头 & 表身 id
var h_uid = $(this).attr("id").split("_")[1]
var b_uid = $(this).attr("id").split("_")[2]
var undo_data = JSON.parse(localStorage.getItem("undo_data"))
//修改状态
var selectOrder = undo_data.find(order => order.head.uid == h_uid)
var selectItem = selectOrder.bodys.find(item => item.uid == b_uid)
selectItem.itemDone = $(this).prop('checked')
localStorage.setItem("undo_data", JSON.stringify(undo_data))
})
在上一篇中我们已经完成订单的画面更动,
只需要分别在按下完成与返回按键的时候修改状态即可
//按下完成时
item.head.orderDone = true
//按下返回时
item.head.orderDone = false
完整 完成click事件:
$('#undo_list').on("click", 'button[name="done_btn"]', function () {
var uid = $(this).attr("id").replace("_btn", "")
var undo_data = JSON.parse(localStorage.getItem("undo_data"))
var done_data = JSON.parse(localStorage.getItem("done_data"))
undo_data.forEach((item,index) => {
if (item.head.uid == uid) {
item.head.orderDone = true
done_order(item.head, item.bodys)
if (done_data[0] == null) {
done_data[0] = item
} else {
done_data[done_data.length] = item
}
$(`#${uid}_li`).remove()
undo_data.splice(index, 1)
localStorage.setItem("done_data", JSON.stringify(done_data))
localStorage.setItem("undo_data", JSON.stringify(undo_data))
}
})
});
完整 返回click事件:
('#done_list').on("click", 'button[name="itemback_btn"]', function () {
var uid = $(this).attr("id").replace("btn", "")
var undo_data = JSON.parse(localStorage.getItem("undo_data"))
var done_data = JSON.parse(localStorage.getItem("done_data"))
done_data.forEach((item, index) => {
if (item.head.uid == uid) {
item.head.orderDone = false
undo_order(item.head, item.bodys)
undo_data[undo_data.length] = item
$(`#${uid}_div`).remove()
done_data.splice(index, 1)
localStorage.setItem("done_data", JSON.stringify(done_data))
localStorage.setItem("undo_data", JSON.stringify(undo_data))
}
})
});
这两篇中,我们主要是将前端发生事件时将资讯记录下来。
下一篇我们会开始运用储存下来的资讯回馈到画面上,
和把记录下来的资讯与资料库同步。
<<: 爬虫怎麽爬 从零开始的爬虫自学 DAY26 python网路爬虫开爬7-规模扩大
呈上篇,利用可以汇出的BOM表,调整之後再重新汇入 首先需要定义一个汇入范本 如果在Alternat...
ELB (Elastic Load Balancer) ELB 是一个托管的 load balanc...
前言 Reactive的世界里,我们已经知道了从接收request(Spring WebFlux)进...
前言 在更新Linkedkin 个人档案的时候 偶然发现他有技术检定测验 如果总成绩在前30%,会发...