javascript - 如何通过在淘汰赛中双击来编辑多选元素中的项目
问题描述
我有一个包含项目的列表,并且只想通过双击或类似的方式编辑选定的项目。是否可以通过属性而不是索引(如名称)双击多选列表中的选定项目?如何实现下面的 dblclick 编辑事件功能:
<select multiple="multiple" height="5"
data-bind=" options: ItemsInDB,
optionsText: 'Name',
selectedOptions: selectedItems,
event: { dblclick: editItem } "></select>
解决方案
这是可行的,但是由于options
绑定不提供对单击处理程序中当前项目的任何轻松访问(据我所知),因此您需要对选项元素进行一些后期处理,以便您可以例如保存他们的数据属性中原始数组中的索引,以便您知道以后要编辑哪个项目。您可以使用optionsAfterRender
回调。
<select multiple="multiple" height="5"
data-bind=" options: ItemsInDB,
optionsText: 'Name',
selectedOptions: selectedItems,
event: { dblclick: editItem },
optionsAfterRender: setOptionData">
</select>
它提供了选项元素和绑定它的数据项,因此您可以这样做:
vm.setOptionData = function (option, item) {
option.dataset.itemIndex = vm.ItemsInDB.indexOf(item);
}
然后在点击处理程序中,您可以再次抓取索引并编辑项目:
vm.editItem = function(data, event) {
vm.isEditing(!vm.isEditing());
vm.editingItem(vm.ItemsInDB()[event.target.dataset.itemIndex]);
}
推荐阅读
- python-3.x - 如何使用opencv python在各种彩色背景中找到文档边缘?[各种背景下的文档扫描]
- dependency-injection - unity拦截策略返回代理对象
- java - 如何在 Spring Boot 中测试 EJB - openejb 由于模块信息而无法处理多版本 JAR
- sql - 聚集索引扫描和索引扫描的区别
- python - Python - 替换 Excel 表格中的值
- python - Python - 为什么我的 for 循环跳过行并且没有到达文件末尾?
- python-2.7 - 执行命令期间的 pip python-geohash 问题
- flask - 设置 Access-Control-Allow-Origin 后,为什么会出现 CORS 错误?
- java - 如何在 Quarkus 中为外部模块中的类创建 Jandex 索引
- linq - 如何在 C# 中对 linq 进行多列分组