Estoy tratando de escribir un código genérico

var rodd = $('#checkBox');

Quiero pasar a rodd a una función y comprobar si se comprueba

Callme(rodd);

$(rodd).click(function() {
Callme(this);
});

function Callme(rodd){
if(this.checked){
//do some behavior
}
}
InformationsquelleAutor | 2009-09-25

3 Comentarios

  1. 16

    Si rodd es un objeto jQuery:

    function Callme(rodd) {
      if (rodd.is(":checked")) {
        //...
      }
    }

    o:

    function Callme(rodd) {
      if (rodd[0].checked) {
        //...
      }
    }
  2. 5

    Esto debería funcionar:

    //Assuming rodd is a jquery element
    Callme(rodd);
    
    rodd.click(function() {
      Callme($(this));
    });
    
    function Callme(rodd){
      if(this.is(":checked"){
        //do some behavior
      }
    }

    recordar que el caso de la escucha de esta apuntando al elemento DOM, no jquery elemento. Por lo tanto, usted necesita para convertir esto en un jquery elemento, utilizando el $(este) de la expresión.

    • La segunda opción me guió en la dirección correcta. Yo estaba tratando de this.css("cursor", "pointer"); pero necesaria para envolver this en un selector de jQuery en primer lugar, $(this).css("css", "pointer");.
  3. 1

    Mirando el código, el paso de un objeto jQuery, rodd, en una función para devolver un objeto jQuery $(rodd).click...

    Podría ser más fácil hacer

    $('#checkBox').click(Callme);
    
    function Callme(rodd){
    
        if(this.checked){
        //do some behavior
        }
    
    }

    o

    $('#checkBox').click(Callme);
    
    function Callme(rodd){
    
        if($(this).is(':checked')){
        //do some behavior
        }
    
    }

    esto también lo hace con el anónimo de la función de controlador de eventos que es sólo la ejecución de Callme() pasando en el destino del evento. Demo aquí.

    EDICIÓN:

    Actualmente, Callme(rodd) arriba espera un HTMLElement object a ser pasado. Si usted quiere ser capaz de pasar en un objeto jQuery, simplemente cambiar a este

    $('#checkBox').click(function(event) {
    
    Callme($(event.target));
    
    });
    
    function Callme(rodd){
    
        if(rodd.is(':checked')){
         alert('checked');
        }
    
    }

    aunque personalmente, me gustaría que sea como un elemento a ser pasado y hacer el ajuste en el Callme función. usted puede ser que desee considerar el prefijo de la rodd parámetro con $ para hacer evidente que un objeto jQuery que se espera.

Dejar respuesta

Please enter your comment!
Please enter your name here