Issue #696💬 RespondidoAbierto el 31 de diciembre de 2017por NHKKReacciones 0

Pregunta de encuadernación con clic

Respuesta rápidapor artf

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)

artf4 de enero de 2018

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() {...} },

lock[bot]18 de septiembre de 2019

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.

Plugins de pago que cumplen con este problema

Seleccionado por temas clave y relevancia de etiquetas para ayudarte a enviar más rápido.

Ver todos los plugins

Cargando recomendaciones de plugins de pago...

Opción gratuita

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 →
Opción premium

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.

Todos los tutoriales →

Explorar categorías de plugins

Ve directamente a las páginas de categorías de plugins en el marketplace.