2012-09-05 21 views
5

He siguiente código en mi Wordpress:Javascript dólar variable de signo no trabaja

(function ($) { 
    var $header = $("div.header"); 

    $(window).bind("scroll resize", function() { 
    if ($(window).scrollTop() > 30) { 
     $("div.header").stop().animate({ 
     'opacity': 0.24 
     }, { 
     duration: 1000 
     }); 
    } else { 
     $header.stop().animate({ 
     'opacity': 1 
     }, { 
     duration: 1000 
     }); 
    } 
    }); 
})(jQuery); 

Si patadas en los estados cuando se supone pero no otra cosa ...

PERO

Si le adjunto con :

jQuery(document).ready(function($) {   
    // code here 
}); 

Todo está bien. ¿Por qué?

Gracias

+0

What es el error de javascript que ocurre o proporciona su url de wordpress que contiene el error para que podamos responder correctamente. –

+1

"¿Por qué no funciona?" no es un mensaje de error con el que estoy familiarizado –

+2

@ExplosionPills: es como "el cielo es azul" y "el agua está mojada" y "la gravedad es una decepción" y "la fricción es un lastre". cierto, pero inútil. –

Respuesta

9

puede ser que usted está tratando de usar jQuery cuando Dom en no construir. Trate de usar $(document).ready función:

(function ($) { 
    $(document).ready(function() { 
    $header = $("div.header"); 
    $header.remove(); 
    }); 
})(jQuery); 

en lo que tiene mantioned en la pregunta:

jQuery(document).ready(function ($) { 
    // code 
}); 

Funciona porque hacen lo mismo: se une controlador de eventos en ready evento y pasar jQuery objeto como un parámetro para la función como $.

Ahora lo que lo hacía antes:

(function ($) { 
    $header = $("div.header"); 
    $header.remove(); 
})(jQuery); 

Aquí simplemente declara función anónima con el nombre $ parámetro:

function ($) { 
} 

Y llama con jQuery objeto como un parámetro, que estará disponible en la función como $:

(function ($) { 
})(jQuery); 
+0

Muchas gracias hombre. Hay algo nuevo para mí para digerir. –

Cuestiones relacionadas