Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

140
Visualizações
¿Cómo hacer clic en el elemento del componente secundario desplegable?

Tengo estos componentes, ese es el menú desplegable:

 <template> <div class="dropdown-menu" v-click-outside="close"> <p class="paragraph medium dropdown-default-value" @click="$emit('show')"> <span>{{ defaultValue }}</span> </p> <div v-if="showContent" class="dropdown-menu-content"> <div v-for="item in dropdownItems"> <p class="paragraph medium drop-item" @click="pick(item)">{{ item }}</p> </div> </div> </div> </template> <script> import vClickOutside from 'v-click-outside'; export default { name: "Dropdown", directives: { clickOutside: vClickOutside.directive }, props: { defaultValue: String, dropdownItems: Array, showContent: Boolean, onShow: Boolean }, methods: { close() { this.$emit('close') }, pick(item) { this.$emit('pick', item) } } } </script>

Este es un componente clild con accesorios, en el componente principal se ve así:

 <Dropdown :default-value="item.default" :show-content="item.show" :dropdown-items="item.items" @show="item.show = !item.show" @close="item.show = false" @pick="pick(item)" /> ... export default { name: "settings", data() { return { settingsOptions: [ { title: 'Language', text: 'Interface language', show: false, default: 'English', items: ['English', 'Russian', 'Polish'] }, { title: 'Theme', text: 'Chose dark or light theme', show: false, default: 'Dark', items: ['Dark', 'Light'] }, { title: 'Default currency', text: 'Chose default currency for pages, etc.', show: false, default: 'EUR', items: ['EUR', 'USD'] } ], showDropdown: false } }, methods: { pick(item) { console.log(item) } } }

El problema está en la función de pick , no tengo idea de cómo implementar esto. Este código que ves aquí solo imprime este elemento completo, y esto es todo lo que pude obtener. Lo que necesito es obtener el elemento en el que se ha hecho clic, usando $emit , por supuesto.

¿Cómo puedo pasar este elemento en el que se hizo clic en $emit ?

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

El método de pick en el componente se definió correctamente:

 pick(item) { this.$emit('pick', item) }

Todo lo que necesita hacer es usar $event en el componente principal como parámetro en su función:

 <Dropdown :default-value="item.default" :show-content="item.show" :dropdown-items="item.items" @show="item.show = !item.show" @close="item.show = false" @pick="pick($event)" />
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda