Child node 'click' event triggers no longer work when the parent becomes visible via $if
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 35/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- javascript
- Área
- frontend
Línea de trabajo
Reproduce la escena del popup del issue con #popup controlado por $if y #button como su hijo, comparando los casos en los que inicialmente es visible y en los que primero se oculta y después se vuelve a mostrar. Rastrea cómo afectan los cambios de visibilidad al manejo de eventos del hijo; se considera terminado cuando el evento click del botón funciona después de volver a mostrar el elemento padre, mientras el popup y los eventos del fondo conservan el comportamiento indicado.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Use case: simple popup dialog with OK and CANCEL buttons. If the initial state of the popup is visible (for testing), the 'click' events on the buttons work as expected. If the popup node is set hidden via $if and then re-displayed ($if is true), the buttons (child nodes) no longer respond to click events.
FamousFramework.scene('tutaslabs:test', {
behaviors: {
'#popup': {
'align': [0.5, 0.3],
'origin': [0.5, 0.5],
'mount-point': [0.5, 0.5],
'size': [150, 150],
'position-z':1,
'style': {
'background-color': 'red',
'border-radius': '15px',
'padding': '20px'
},
'unselectable': false,
'$if': function(pvisible) {
return pvisible;
}
},
'#button': {
'align': [0.4, 0.4],
'origin': [0.5, 0.5],
'mount-point': [0.5, 0.5],
'size': [100, 30],
'position-z':20,
'style': {
'background-color': 'lightblue',
'border-radius': '15px',
'cursor':'pointer',
'text-align':'center',
'line-height':'30px'
},
'content': 'Ok'
}
},
events: {
'$self': {
'click': function($event,$state) {
alert('background clicked')
$state.set('pvisible',true)
}
},
'#button': {
//this does not work when parent becomes visible from a hidden state ($if was false)
'click': function($event,$state) {
alert('button clicked')
$state.set('pvisible',false)
}
},
'#popup': {
//this works as expected on becoming 'visible' ($if is true)
'click': function($event,$state) {
alert('popup clicked')
$state.set('pvisible',false)
}
}
},
states: {
pvisible: true
},
tree:
`<node id="popup">
<node id="button"></node>
</node>`
});
- Lenguaje dominante
- JavaScript
- Estrellas
- 394
- Forks
- 62
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de Famous/framework
-
$repeat does not repeatAbierto
Dificultad 3/5 1-2 días Aptitud para principiantes 42/100
-
Dificultad 4/5 3-5 días Aptitud para principiantes 20/100
-
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
-
Improve Scroll ViewAbierto
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
Todos los issues de Famous/framework
Issues similares
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
capricorn86/happy-dom#2485 ·
Los mantenedores suelen responder en 2 días
-
area:space-accuracy good first issue track:data
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
Sara-Managed-Projects/space-radar#904 ·
Los mantenedores suelen responder en 1 día