Pregunta de encuadernación con clic
Hola @NHKK si tu objetivo era extender el componente de 'entrada' con algún evento vinculado, casi lo estabas (solo tienes que usar 'comps.addType') '''js //... comps.addType('input', { //.. view: defaultType.view.extend({ eventos: { clic: 'handleClick', dblclick: 'algunaOtraFunción', o dblclick: función() {...} }, ```
Lee la respuesta completa abajo ↓Pregunta
Hola a todos, soy nuevo en todo esto y he estado revisando la documentación, pero todavía no entiendo cómo asignar el evento de clic. Tengo 2 archivos, el primero es '''js var editor = grapesjs.init({ autorender: 0, contenedor: '#gjs', componentes: '<input type="password" class="hello"/> <button handleClick> hola </button>', //primer intento componentes: '<input type="password" ondblclick="dbclick"/> <button handleClick> hola </button>', //segundo attempt Estilo: '.txt-rojo{color: rojo}', });
y el segundo archivo es
'''js
VAR Comps = Editor. DomComponents;
var defaultType = comps.getType('default');
var defaultModel = defaultType.model;
var defaultView = defaultType.view;
var inputTypes = [
{valor: 'texto', nombre: 'Texto'},
{valor: 'correo electrónico', nombre: 'Correo electrónico'},
{valor: 'contraseña', nombre: 'Contraseña'},
{valor: 'número', nombre: 'Número'},
];
comps.addType('input', {
model: defaultModel.extend({
defaults: Object.assign({}, defaultModel.prototype.defaults, {
arrastrable: 'forma, forma *',
Droppable: falso,
Rasgos: ['Nombre', 'Sustituto', {
tipo: 'select',
etiqueta: 'Tipo',
Nombre: 'Tipo',
opciones: inputTypes,
},{
Tipo: 'Casilla de verificación',
etiqueta: 'Obligatorio',
Nombre: 'Required',
}],
}),
},
{
isComponent: function(el) {
if(el.tagName == 'INPUT'){
return {type: 'input'};
}
},
}),
view: defaultType.view.extend({
eventos: {
clic: 'handleClick',
dblclick .hello: function(){ //esto no funciona error inesperado de token
función dblick() // esto tampoco parecía funcionar
alerta ('¡Hola!');
}
},
randomHex: función() {
return '#' + Math.floor(Math.random()*16777216).toString(16);
},
handleClick: function(e) {
this.model.set('style', {color: this.randomHex()}); <- Afecta al código HTML final
this.el.style.backgroundColor = this.randomHex(); <- No afecta al código HTML final
},
render: función () {
defaultType.view.prototype.render.apply(esto, argumentos);
this.el.placeholder = 'Texto aquí'; <- No afecta al código HTML final
devuelvo esto;
},
}),
});
editor.render();
¿Alguien tiene un ejemplo de binding?
Respuestas (2)
Hola @NHKK si tu objetivo era extender el componente de 'entrada' con algún evento vinculado, casi lo estabas (solo tienes que usar 'comps.addType') '''js //... comps.addType('input', { //.. view: defaultType.view.extend({ eventos: { clic: 'handleClick', dblclick: 'algunaOtraFunción', o dblclick: función() {...} },
Este hilo se ha bloqueado automáticamente porque no ha habido actividad reciente desde que se cerró. Por favor, abre un nuevo problema para bugs relacionados.
Preguntas y respuestas relacionadas
Continúa investigando con debates sobre temas similares.
Issue #519
No hay bloques por defecto
Uso de este código Tengo un editor pero no hay bloqueos. Tampoco veo los iconos del tamaño de pantalla, pero sí hay otros iconos. Como pued...
Issue #1505
añadir filas y secciones que no funcionan
Estoy integrando Grapejs con Angular6. Pero no funciona significa que no aparece en bloques Estoy usando el siguiente código
Issue #905
[Pregunta] necesito encontrar eventos necesarios.
¡Hola a todos! Al arrastrar un bloque al lienzo, y sueltarlo: ... Tenemos un evento que detectar, en qué bloque caemos. ?: pero cuando dejo...
Issue #1150
[Pregunta] Obtén subidas como Base64
Hola a todos, Necesito ayuda para integrar esto en una aplicación web que tengo. Todo se renderiza y funciona como se espera, pero estoy in...
Plugins de pago que cumplen con este problema
Seleccionado por temas clave y relevancia de etiquetas para ayudarte a enviar más rápido.
Cargando recomendaciones de plugins de pago...
Consulta los plugins de código abierto de GrapesJS en GitHub O haz una búsqueda rápida en nuestro catálogo gratuito.
Explora plugins gratuitos →Los plugins premium incluyen soporte, actualizaciones regulares y funciones listas para producción — ahorrando días de trabajo de integración.
Explora plugins premium →Tutoriales relacionados
Guías detalladas sobre el mismo tema.
Explorar categorías de plugins
Ve directamente a las páginas de categorías de plugins en el marketplace.