Das Core Asset Management Project erfordert, dass el-transfer Drag-and-Drop-Sortier- und Drag-and-Drop-Funktionen auf der linken, rechten, oberen und unteren Seite hinzufügt; Erstinstallation sudo npm i sortablejs --save-dev HTML Quelltext <Vorlage> <el-transfer ref="transfer" id="transfer" v-model="Wert" :data="Daten"> <span slot-scope="{ option }" :draggable="!option.disabled" @dragstart="drag($event,option)">{{ option.key }} - {{ option.label }}</span> </el-transfer> </template>``` erstellen <Skript> Sortable aus „sortablejs“ importieren Standard exportieren { Daten() { const generateData = _ => { const data = []; für (let i = 1; i <= 15; i++) { Daten.push({ Taste: i, Bezeichnung: `Option ${i}`, deaktiviert: i % 4 === 0 }); } Daten zurückgeben; }; zurückkehren { Daten: generateData(), Wert: [1, 4], draggingKey : null } }, montiert() { const transfer = dies.$refs.transfer.$el const leftPanel = transfer.getElementsByClassName("el-transfer-panel")[0].getElementsByClassName("el-transfer-panel__body")[0]; const rightPanel = transfer.getElementsByClassName("el-transfer-panel")[1].getElementsByClassName("el-transfer-panel__body")[0]; const rightEl = rightPanel.getElementsByClassName("el-transfer-panel__list")[0] Sortable.create(rechtsEl,{ am Ende: (evt) => { const {alterIndex,neuerIndex} = evt; const temp = this.value[alterIndex] wenn (!temp || temp === 'undefiniert') { zurückkehren }//Lösen Sie das Problem der undefinierten Angabe, wenn das letzte Element rechts von rechts nach links gezogen wird. this.$set(this.value,oldIndex,this.value[newIndex]) dies.$set(diesen.Wert,neuerIndex,temp) } }) const leftEl = leftPanel.getElementsByClassName("el-transfer-panel__list")[0] Sortable.create(leftEl,{ am Ende: (evt) => { const {alterIndex,neuerIndex} = evt; const temp = this.data[alterIndex] wenn (!temp || temp === 'undefiniert') { zurückkehren } //Lösen Sie das Problem der undefinierten Angabe, wenn das letzte Element rechts von rechts nach links gezogen wird. this.$set(this.data,oldIndex,this.data[newIndex]) dies.$set(diese.daten,neuerIndex,temp) } }) leftPanel.ondragover = (ev) => { ev.preventDefault() } leftPanel.ondrop = (ev) => { ev.preventDefault(); const index = dieser.Wert.indexOf(dieser.draggingKey) wenn(index !== -1){ dieser.Wert.splice(index,1) } } rightPanel.ondragover = (ev) => { ev.preventDefault() } rightPanel.ondrop = (ev) => { ev.preventDefault(); wenn(dieser.Wert.indexOf(dieser.draggingKey) === -1){ dieser.Wert.push(dieser.draggingKey) } } }, Methoden: { ziehen(ev,option) { diese.draggingKey = option.key } } } </Skript> Dies ist das Ende dieses Artikels über das Hinzufügen einer Drag-and-Drop-Funktion zum Vue-Element el-transfer. Weitere verwandte Inhalte zum Drag-and-Drop-Element el-transfer finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: Über das WeChat-Gleitproblem des UniApp-Editors
>>: React-native-Beispielcode zur Implementierung des Schiebelöscheffekts des Einkaufswagens
Ich war in den letzten beiden Tagen etwas beschäf...
Kerncode -- Im Folgenden werde ich die Implementi...
<br />Zuvor haben wir gelernt, wie man Zelll...
Inhaltsverzeichnis Vorwort Umsetzungsideen Implem...
Inhaltsverzeichnis Status Quo Lösung Weitere Lösu...
Inhaltsverzeichnis Vorwort 1.ignorieren einfügen ...
Inhaltsverzeichnis 1. Lassen Sie uns zunächst erk...
Bild-Tag : <img> Um ein Bild in eine Seite e...
Die bedeutendste Website-Änderung im Jahr 2011 bet...
1. Z-Index ist in IE6 ungültig. In CSS wird die E...
1. Was ist Continuous Delivery Der Ausgabeprozess...
Inhaltsverzeichnis Vorwort 1. Neue Partitionen vo...
Ich glaube, dass viele Programmierer mit MySQL ve...
Dieser Artikel stellt ein interessantes Pseudoele...
Schritt 1: Laden Sie den MySQL-Treiber herunter c...