Foros del Web » Programando para Internet » Jquery »

[jQuery] ¿Como obtengo el objeto que llama a un evento?

Estas en el tema de [jQuery] ¿Como obtengo el objeto que llama a un evento? en el foro de Jquery en Foros del Web. Hola a todos, Les comento mi problema: ¿Cómo puedo obtener el objeto que llama a una función? ejemplo: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Javascript : Ver original ...
  #1 (permalink)  
Antiguo 07/01/2010, 14:10
 
Fecha de Ingreso: agosto-2009
Mensajes: 21
Antigüedad: 14 años, 8 meses
Puntos: 0
[jQuery] ¿Como obtengo el objeto que llama a un evento?

Hola a todos, Les comento mi problema:

¿Cómo puedo obtener el objeto que llama a una función?

ejemplo:
Código Javascript:
Ver original
  1. $(".clase").click(function(){
  2.   /*Esto hace que todos los objetos cuya class sea clase,
  3.   se les asigne el procedimiento siguiente.
  4.   */
  5.  
  6.   $("#cajaDeTexto").val( OBJETO.val());  //El problema es cómo accedo al objeto que
  7.                                                 //hizo la llamada a la función.
  8. });

¿Se entiende?
  #2 (permalink)  
Antiguo 07/01/2010, 14:59
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Respuesta: [jQuery] ¿Como obtengo el objeto que llama a un evento?

Hola barclow

Puedes usar $(this). Creo que sería algo así:

Código javascript:
Ver original
  1. $("#cajaDeTexto").val($(this).val());

Saludos,
  #3 (permalink)  
Antiguo 07/01/2010, 15:08
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 1 mes
Puntos: 101
Respuesta: [jQuery] ¿Como obtengo el objeto que llama a un evento?

Proba con $(this)
Cita:
$(".clase").click(function(){


$("#cajaDeTexto").val( $(this).val());
});
  #4 (permalink)  
Antiguo 08/01/2010, 07:30
 
Fecha de Ingreso: agosto-2009
Mensajes: 21
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: [jQuery] ¿Como obtengo el objeto que llama a un evento?

me funciona perfecto, gracias.

ahora tengo otra pregunta, resulta que aplico el CSS "clase" a todos los links que se forman dinamicamente, y el texto de estos links <a> es la ID del campo que deseo modificar.

Entonces... cómo lo hago para pasarle parámetro a la función y luego cambiarle el nombre al botón....


algo así:
Código Javascript:
Ver original
  1. $(".clase").click(function(){
  2.     //EL TEXTO ORIGINAL AGREGARLO AL PARAMETRO DE LA FUNCION
  3.     FUNCTIONPARAMETER = $(this).outerText;
  4.    
  5.     //CAMBIAR EL TEXTO DEL LINK
  6.     $(".clase").outerText = "Seleccionar";
  7.  
  8.      // UNA VEZ SE LLAMA A LA FUNCION POR HACER CLICK EN EL LINK,
  9.     //QUE COPIE EL VALOR DEL PARAMETRO A UNA CAJA DE TEXTO
  10.     $("#cajaDeTexto").val(FUNCTIONPARAMETER);
  #5 (permalink)  
Antiguo 08/01/2010, 08:15
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 1 mes
Puntos: 101
Respuesta: [jQuery] ¿Como obtengo el objeto que llama a un evento?

A ver. Estoy con los ojos cansados y no termino de entender tu consigna, pero creo que es algo sencillo.

Para obtener el texto no usas outertext, sino el metodo .text()

Cita:
$(".clase").click(function(){

texto = $(this).text();

$(".clase").text("Seleccionar");

$("#cajaDeTexto").val(texto);
  #6 (permalink)  
Antiguo 08/01/2010, 18:45
 
Fecha de Ingreso: agosto-2009
Mensajes: 21
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: [jQuery] ¿Como obtengo el objeto que llama a un evento?

gracias por responder, pero no es eso lo que necesito. a ver, explico de nuevo.
Código HTML:
Ver original
  1. <!-- Tengo el siguiente control-->
  2. <a class="clase">1</a>
  3.  
  4. <!-- Necesito Simular esto con jQuery-->
  5. <a class="clase" onclick="funcion('1')">TEXTO</a>
  6.  
  7.  
  8. <script type="text/javascript">
  9.    $(document).ready(function(){
  10.         var PARAMETRO = $(".clase").outerText;
  11.         $(".clase").outerText = "TEXTO";
  12.  
  13.  
  14.          $(".clase").click = funtion(funcion(PARAMETRO);
  15.    });
  16.  
  17. function funcion(par){
  18.     //PROCESO LA FUNCION
  19. }
  #7 (permalink)  
Antiguo 08/01/2010, 19:42
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 1 mes
Puntos: 101
Respuesta: [jQuery] ¿Como obtengo el objeto que llama a un evento?

Lo siento. Otra vez es de noche y tengo los ojos cansados. Pero tambien veo que hay llaves y parentesis que no estan claros en tu codigo.

Quizas estes tratando de obtener el id?

Cita:
$(this).attr("id");
  #8 (permalink)  
Antiguo 09/01/2010, 08:36
 
Fecha de Ingreso: agosto-2009
Mensajes: 21
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: [jQuery] ¿Como obtengo el objeto que llama a un evento?

Pucha, es que no sé como explicarme...

mira, tengo lo siguiente

Código HTML:
Ver original
  1. <a class="clase">1</a>

quiero que con una funcion en jQuery, simular esto:
Código HTML:
Ver original
  1. <a class="clase" onclick="funcion('1')">TEXTO X</a>

Es decir, quiero tomar el texto del control, ponerlo como parámetro de mi función onclick y luego quiero cambiar el texto de la etiqueta <a> por algun otro.
  #9 (permalink)  
Antiguo 09/01/2010, 09:56
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 1 mes
Puntos: 101
Respuesta: [jQuery] ¿Como obtengo el objeto que llama a un evento?

Cita:
$(".clase").click(function(){ // adjudico un evento click

texto = $(this).text(); // obtengo el texto actual

llamada(texto); // se lo paso como parametro a otra funcion

$(this).text("otro texto"); // cambio el texto

return false;

});

function llamada(b) { alert (b); }; // defino la otra funcion, con su parametro , y lo pruebo con alert .



Lo mismo podes hacer el el html:

Cita:
<a class="clase" onclick="texto = $(this).text(); llamada(texto); $(this).text("otro texto"); return false; ">TEXTO X</a>
  #10 (permalink)  
Antiguo 11/01/2010, 10:22
 
Fecha de Ingreso: agosto-2009
Mensajes: 21
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: [jQuery] ¿Como obtengo el objeto que llama a un evento?

Lo intentaré, te cuento como me fué luego.


Muchísimas gracias ^^
  #11 (permalink)  
Antiguo 12/01/2010, 09:10
 
Fecha de Ingreso: diciembre-2009
Ubicación: Misiones
Mensajes: 867
Antigüedad: 14 años, 4 meses
Puntos: 65
Respuesta: [jQuery] ¿Como obtengo el objeto que llama a un evento?

yo le pongo el valor como id, o sea id="1" y lo recupero con $(this).attr('id')
o para que por las dudas no se repita o quiero que sea mas descriptivo agrego un texto antes y lo separo por un guión y hago un split

Código HTML:
<html>
    <head>
        <title>Ejemplo</title>
        <script src="jquery.js" type="text/javascript"></script>
        <script type="text/javascript">
        $( function (){
            $('a').click( function () {
                parametro = $(this).attr('id').split('-');
                alert( parametro[1] );
            });
        });
        </script>
    </head>
<body>
    <a href="#" id="valor-1">rojo</a><br />
    <a href="#" id="valor-2">verde</a><br />
    <a href="#" id="valor-3">azul</a><br />
</body>
</html> 
o si no te molesta puedes poner un atributo val='1' y recuperarlo con $(this).attr('val')
  #12 (permalink)  
Antiguo 15/01/2010, 10:01
 
Fecha de Ingreso: agosto-2009
Mensajes: 21
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: [jQuery] ¿Como obtengo el objeto que llama a un evento?

Les agradezco muchísimo a todos, solucioné mi problema. Gracias :D

recordé que en jQuery hay algo similar a lo que necesitaba, se los dejo:

Código Javascript:
Ver original
  1. $.get('myhtmlpage.html', function(){
  2.   myCallBack(param1, param2);
  3. });

:D

Gracias a todos :D

Etiquetas: llama, objeto, eventos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:48.