Tu problema podría ser uno de los tiempos.
tener en cuenta, cuando se llama algo así como $('a').attr(...whatever...)
, que se llevará a efecto inmediatamente , en todas y cada una existentes elementos de la página. Entonces, ... si su complemento tweet
es asincrónico y tarda más de 0 milisegundos en realizarse, parece que su código está tratando de cambiar los atributos en los enlaces que ni siquiera existen en la página.
Es decir, puede estar (A) llamando al tweet
, (B) cambiando todos los enlaces en la página, y luego (C) el complemento de tweet completa e inyecta un grupo de enlaces nuevos en la página que se perdió más temprano.
Entonces, lo que podría intentar, es ver si el complemento tweet
que está utilizando tiene algún tipo de "finalización" u otra devolución de llamada completa, que luego podría usar para cambiar las etiquetas de enlace. O, como otra respuesta sugerida, que también respaldo, es no solo tratar de cambiar las etiquetas de enlace, sino escuchar (en vivo) en cualquier enlace los clics en la página, e interceptarlos en ese momento. De esta forma, no necesita preocuparse por el tiempo/la finalización del plugin de tweet, ya que podría usar la delegación de eventos (live
) que funciona en cualquier momento. Vea la respuesta de Petah para un gran ejemplo de cómo hacer esto.
¡Buena suerte!
Me pregunto por qué esto fue downvoted? Debería funcionar como se anuncia. En una nota lateral, me gusta establecer el atributo 'target' en' _blank', como se sugirió en otras respuestas, porque soy de la vieja escuela y funciona bien. Pero esta solución en particular, si a uno le interesan tales cosas, es la que debería recomendarse si a uno le interesa la validación (ya que 'target 'es un atributo obsoleto). – Funka
P.S., vea mi respuesta por separado en esta página, que respalda esta misma respuesta por otro motivo: el momento. – Funka