Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

142
Vistas
habilitar y deshabilitar el elemento div con javascript en Svelte

El siguiente archivo Svelte produce un árbol en el que se puede hacer clic en los elementos.

Comportamiento actual

El problema que tengo es que cuando hago clic en el elemento div, el elemento está enfocado, pero los elementos anteriores no están enfocados.

Comportamiento esperado

Solo un div está activo al mismo tiempo.

Ensayos

He intentado varias reescrituras de este código, pero parece que necesito hacer un seguimiento de algún tipo de historial para deshacer el enfoque.

 <script lang="ts"> import type { FrontendFile } from '$lib/front'; export let content: FrontendFile; export let history: FrontendFile[]; let text: string; function focusUnfocus() { for (let i=0; i++; i < history.length) { history[i].status.focused = false; } content.status.focused = !content.status.focused; history.push(content); if (content.status.focused) { text = 'font-black'; } else { text = ''; } } </script> <div class="{text}" on:click={focusUnfocus}> {content.name} </div> ... {#each content.children as sub} <svelte:self bind:history bind:content={sub} /> {/each} ...
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Lo resolvi con lo siguiente

 <script lang="ts"> import type { FrontendFile } from '$lib/front'; export let content: FrontendFile; export let lastFocused: FrontendFile; function focusUnfocus() { if (lastFocused) { lastFocused.status.focused = false; } content.status.focused = true; lastFocused = content; } let text: string = ''; $: if (content.status.focused) { text = 'font-black'; } else { text = ''; } </script> <div class=" {text}" on:click={focusUnfocus}> {content.name} </div> {#each content.children as sub} <svelte:self bind:lastFocused bind:content={sub} /> {/each}

Cambié al historial de 1 objeto y cambié el enlace en el archivo index.svelte de nivel superior de la siguiente manera.

 <script lang="ts"> export let lastFocused; </script> ... {#each filesystems as system} <RenderTree {lastFocused} bind:content={system} {/each} ...
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda