Pour de plus en plus d'applications de nos jours, appuyer longuement sur un élément pour faire apparaître l'opération est devenu une méthode de fonctionnement très courante. Aujourd'hui, nous allons parler de la façon d'implémenter la suppression des pop-ups par appui long dans le développement à l'aide d'uniapp.
Tout d'abord, nous devons définir les éléments sur lesquels il faut opérer en HTML. Dans cet exemple, nous pouvons utiliser v-for
pour générer une liste, puis chaque élément de la liste doit contenir l'action dont nous avons besoin, comme un bouton de suppression. Le code HTML est le suivant : v-for
来生成一个列表,然后每个列表项都应该包含我们需要的操作,比如删除按钮。HTML 代码如下:
<template> <div class="list"> <div class="item" v-for="(item, index) in list" :key="index"> <div>{{ item.name }}</div> <button class="delete" @click="deleteItem(index)">删除</button> </div> </div> </template>
其中 list
是一个数组,代表了我们需要展示的数据,item
是数组中每一项的引用,index
是当前项在数组中的下标。每个列表项中需要包含一个显示名称的 div
元素,和一个用于删除该项的按钮。
接下来,我们需要给刚才定义的元素绑定事件。我们需要绑定一个 @longpress
事件,当用户长按该元素时,会触发该事件。同时,我们还需要记录下用户长按的项的 index,方便我们在弹出的删除操作中使用。HTML 代码如下:
<template> <div class="list"> <div class="item" v-for="(item, index) in list" :key="index" @longpress.native="showMenu(index)"> <div>{{ item.name }}</div> <button class="delete" @click="deleteItem(index)">删除</button> </div> </div> </template>
<script> export default { data() { return { list: [{ name: "item 1" }, { name: "item 2" }, { name: "item 3" }], // 列表数据 longPressIndex: null // 长按的项的下标 }; }, methods: { showMenu(index) { this.longPressIndex = index; // TODO: 显示删除操作的菜单 }, deleteItem(index) { // TODO: 删除列表项 } } }; </script>
如上所示,我们在 showMenu
方法中记录了当前长按的项的 index,然后我们就可以在弹出的删除操作中使用了。
接下来就是我们需要实现的重头戏:弹出删除操作的菜单。我们可以使用 uniapp 提供的 uni.showActionSheet
API 来实现。我们可以在 showMenu
<script> export default { data() { return { list: [{ name: "item 1" }, { name: "item 2" }, { name: "item 3" }], // 列表数据 longPressIndex: null // 长按的项的下标 }; }, methods: { showMenu(index) { this.longPressIndex = index; uni.showActionSheet({ itemList: ["删除"], success: res => { if (res.tapIndex === 0) { this.deleteItem(this.longPressIndex); } } }); }, deleteItem(index) { this.list.splice(index, 1); } } }; </script>
list
est un tableau, représentant les données que nous devons afficher, item
est une référence à chaque élément du tableau, index est l'indice de l'élément actuel dans le tableau. Chaque élément de la liste doit contenir un élément div
qui affiche le nom et un bouton pour supprimer l'élément.
Ensuite, nous devons lier les événements aux éléments que nous venons de définir. Nous devons lier un événement @longpress
, qui sera déclenché lorsque l'utilisateur appuie longuement sur l'élément. Dans le même temps, nous devons également enregistrer l'index de l'élément sur lequel l'utilisateur a appuyé longuement, afin de pouvoir l'utiliser dans l'opération de suppression des fenêtres contextuelles. Le code HTML est le suivant :
showMenu
, puis nous pouvons l'utiliser dans l'opération de suppression du pop-up . 🎜uni.showActionSheet
fournie par uniapp pour y parvenir. Nous pouvons l'appeler dans la méthode showMenu
pour faire apparaître le menu. Le code est le suivant : 🎜rrreee🎜Maintenant, nous avons implémenté avec succès la fonction d'appui long pour faire apparaître l'opération de suppression. Lorsque l'utilisateur appuie longuement sur un élément de la liste, un menu apparaîtra. Une fois que l'utilisateur a sélectionné Supprimer, l'élément est supprimé de la liste. 🎜🎜Résumé🎜🎜Avec la méthode ci-dessus, nous pouvons facilement implémenter l'opération de suppression des pop-ups en appuyant longuement dans uniapp. Cependant, il convient de noter que l'opération d'appui long peut être différente selon les plates-formes, elle doit donc être gérée pour différentes plates-formes. Surtout dans les mini-programmes, lors de la mise en œuvre d'une opération d'appui long, vous devez appeler l'API du mini-programme au lieu de l'API fournie par uniapp. Dans le même temps, il convient également de noter que l'API utilisée par les différentes versions d'uniapp peut également être différente. 🎜Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!