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

171
Visualizações
Uso de funciones de espacio de nombres en jQuery.fn

Esto parece que debería ser obvio, pero no puedo entender cómo usar correctamente los nombres de funciones con espacios de nombres (punteados) en jQuery.fn.

Más precisamente, usar this en una función incrustada en un objeto devuelve el objeto. No es el objeto jQuery al que se adjuntó a través de .fn

Un ejemplo simple que funciona, sin usar funciones de espacio de nombres: ( Ejemplo de trabajo de lo siguiente)

 $.fn.isBigText=function(nBytes) { let ttext=this.val(); if (this.val().length > nBytes ) alert('Too big: '+ttext); } $.fn.isSmallText=function(nBytes) { let ttext=this.val(); if (ttext.length < nBytes ) alert('Too small: '+ttext); } function checkSize(evt) { // alert if too small or big. let jqText=$('#myTextArea') ; // should use evt, but for this example I am being explicit jqText.isBigText(20); jqText.isSmallText(10); } ... <textarea cols="80" rows="1" id="myTextArea" onChange="checkSize(this)">fill this in </textarea>

Y un ejemplo de espacio de nombres que NO funciona. No definir una función .val() provoca un error "TypeError: this.val is not a function". Entonces, para fines ilustrativos, defino un .val() dentro de myFuncsDef que siempre devuelve "Este no es el val() que estaba buscando".

 // this version does not work var myFuncsDef={ val: function() {return 'This is not the val() I was looking for! '}, bigText:function(nBytes) { let ttext=this.val(); if (this.val().length > nBytes ) alert('Too big: '+ttext); } , smallText:function(nBytes) { let ttext=this.val(); if (ttext.length < nBytes ) alert('Too small: '+ttext); } } $.fn.myFuncs=myFuncsDef ; function checkSizeNs(evt) { // alert if too small or big (namespaced version) let jqText=$('#myTextAreaNs') ; // should use evt, but for this example I am being explicit jqText.myFuncs.bigText(20); jqText.myFuncs.smallText(10); } ... <textarea cols="30" rows="1" id="myTextAreaNs" onChange="checkSizeNs(this)">Fill this </textarea>

¿Quizás haya una forma de guardar el valor adecuado de esto (el jqText) antes de llamar a una función interna (bigText o smallText)?

Por supuesto, podría usar algo como myFuncs_bigText en lugar de myFuncs.bigText ... pero eso parece un paso atrás.

about 4 years ago · Juan Pablo Isaza
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