Je sais que jQuery est chargé, car je peux désactiver le $
pour 'jQuery' et tout se comporte comme prévu, mais ce sera un script compliqué si je ne parviens pas à résoudre ce problème.
Ce script:
jQuery(document).ready(function(){
$("ul.vimeo_desc_feed li a").click(function(){
alert($(this).attr('href'));
return false;
})
});
Produit l'erreur$ is not a function
Ce script:
jQuery(document).ready(function(){
jQuery("ul.vimeo_desc_feed li a").click(function(){
alert(jQuery(this).attr('href'));
return false;
})
});
fonctionne bien.
Vous pouvez envelopper votre code javascript dans une fonction à invocation automatique, puis passer jQuery
en argument, en utilisant $
comme nom de variable locale. Par exemple:
(function($) {
$(document).ready(function(){
$("ul.vimeo_desc_feed li a").click(function(){
alert($(this).attr('href'));
return false;
})
});
}(jQuery));
devrait fonctionner comme prévu.
Si je me souviens bien de la version de jQuery fournie par WP (celle que vous obtiendrez si vous avez wp_enqueue_script('jquery')
), jQuery est immédiatement en mode non-conflit, ce qui a pour effet que $
n'est pas défini.
Tu y es presque!
jQuery(document).ready(function($){
$("ul.vimeo_desc_feed li a").click(function(){
alert($(this).attr('href'));
return false;
})
});
Vous devez passer une référence à jQuery en tant que fonction $
dans votre méthode, sinon cela ne fonctionnera pas. Si vous placez simplement un $ dans le premier appel function()
comme je l’ai fait ci-dessus, tout se passera bien.
Passer une fonction à jQuery est un raccourci pour $(document).ready(...)
, puis en plaçant $
en tant que premier paramètre de votre rappel, vous créez un alias pour jQuery dans ce rappel:
jQuery(function($) {
$("ul.vimeo_desc_feed li a").click(function(){
alert($(this).attr('href'));
return false;
});
});
Vous pouvez voir la documentation pour ceci ici .