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

135
Visualizações
Enlace de eventos de Backbone.js

Estoy usando Backbone.js y tengo un elemento de interfaz de usuario de tipo de control segmentado para la vista de cada modelo. Cada uno está formado por una ul con unos pocos elementos li. Quiero vincular un evento de modo que cuando se haga clic en uno de estos elementos, pueda determinar en cuál se ha hecho clic y actualizar el modelo con el valor apropiado.

El problema es que Backbone vincula los eventos (estos están en el hash de eventos de la vista) de modo que "esto" en la función de devolución de llamada se refiere a la vista, no a los elementos li. Esto significa que no puedo determinar en cuál de los varios elementos li se ha hecho clic. Si utilicé un enlace jQuery normal, puedo tener "esto" vinculado a los elementos li, pero ya no tengo un seguimiento del modelo, por lo que no puedo actualizarlo.

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

En mi opinión, el hábito de jQuery de configurar this para lo que sea conveniente en ese momento es un patrón bastante desagradable; afortunadamente, nunca tienes que confiar en él:

 onClick: function(e) { this; // Still the view instance (as it should be). e.target; // The element that was clicked. e.currentTarget; // The element that was bound by the click event. }

... Puede usar el target o el objetivo currentTarget del objeto de evento, según corresponda.

over 4 years ago · Santiago Trujillo Relatório

0

No puedo entender por qué no puedo comentar sobre la respuesta de @jashkena arriba. Su método es correcto (¡gracias!) pero pensé en aclarar la situación: en su controlador de eventos, puede recuperar el elemento al que estaba vinculado el evento. El código troncal de muestra se vería así:

 MyView = Backbone.View.extend({ events: { 'click .item': 'handleClick' }, handleClick: function(e) { this; // The view instance e.target; // The element that was clicked e.currentTarget; // The element that was bound by the click event } });

Lo uso para configurar el texto predeterminado en todos mis campos de formulario... sí, todavía no me gusta mucho HTML5 :)

Editar: Por cierto, e.target es el elemento sin procesar. Deberá usar $(e.target) para obtener acceso a jQuery.

over 4 years ago · Santiago Trujillo 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