$elem.hasClass n'est pas une fonction
J'ai trouvé ce jsFiddle http://jsfiddle.net/Yvk9q/9/ que l'utilisation d'isotopes pour amener l'élément que je veux au début.
J'ai essayé de copier que de coda sur ma page mais ça ne fonctionne pas!
Je n'ai vraiment aucune idée de pourquoi $elem.hasClass n'est pas une fonction ( je l'avoue, je n'ai jamais utilisé $elem avant )
Quelqu'un peut-il m'aider à résoudre ce problème?
Merci!
jQuery(document).ready(function($) {
var $container = $('#homepage-grid');
$container.imagesLoaded( function(){
$container.isotope({
itemSelector: 'article',
masonry: {
columnWidth: 125
},
getSortData : {
milk : function( $elem ) {
var isMilk = $elem.hasClass('milk');
return (!isMilk?' ':'');
},
eggs : function( $elem ) {
var isEggs = $elem.hasClass('eggs');
return (!isEggs?' ':'');
},
bacon : function( $elem ) {
var isBacon = $elem.hasClass('bacon');
return (!isBacon?' ':'');
}
}
});
});
var $optionSets = $('#main-nav .option-set'),
$optionLinks = $optionSets.find('a');
$optionLinks.click(function(){
var $this = $(this);
//don't proceed if already selected
if ( $this.hasClass('selected') ) {
return false;
}
var $optionSet = $this.parents('.option-set');
$optionSet.find('.selected').removeClass('selected');
$this.addClass('selected');
//make option object dynamically, i.e. { filter: '.my-filter-class' }
var options = {},
key = $optionSet.attr('data-option-key'),
value = $this.attr('data-option-value');
//parse 'false' as false boolean
value = value === 'false' ? false : value;
options[ key ] = value;
if ( key === 'layoutMode' && typeof changeLayoutMode === 'function' ) {
//changes in layout modes need extra logic
changeLayoutMode( $this, options )
} else {
//otherwise, apply new options
$container.isotope( options );
}
return false;
});
});
- essayez d'utiliser
$($elem)
- Vous avez un non-objet jQuery, peut-être un élément du DOM, ou d'autres "surprenant" de la valeur - qui ne prend pas en charge un hasClass méthode. Utiliser les outils de développement pour inspecter ce $elem est vraiment à l'exception du site.
- Votre violon semble fonctionner correctement! Et
$elem
n'est pas une nouvelle chose, c'est juste un objet HTML, que vous êtes en passant comme argument pour youtmilk(), bacon ()..
etc à utiliser.hasClass()
vous avez besoin[Object object]
donc, essayez avec$(elem)
! - vous aussi nécessaire
jQuery 1.8.3
oujQuery 1.4.2
pour une référence
Vous devez vous connecter pour publier un commentaire.
$elem
n'est pas un objet JQuery. Si vous souhaitez utiliserhasClass
(qui ne peut être appelée sur l'objet JQuery), alors vous devez le convertir en objet JQuery en utilisant$($elem)
$elem
est vide