내가 처음에 원하는 요소를 가져 오기 위해 동위 원소를 사용하는이 jsFiddle http://jsfiddle.net/Yvk9q/9/을 발견했습니다.
내 페이지에서 해당 코다를 복사하려고했지만 작동하지 않습니다!
$ elem.hasClass가 함수가 아닌 이유를 모르겠습니다. (전 $ elem을 사용한 적이 없습니다.)
누구든지 해결할 수 있습니까?
감사!
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;
});
});
을 사용하여 객체를 JQuery 객체로 변환해야합니다. $ ($ elem)을 사용하려고 시도합니다. –
* 비 jQuery * 객체가있을 수 있습니다. DOM 엘리먼트, 또는 hasClass 메소드를 지원하지 않는 다른 "놀라운"값. 개발자 도구를 사용하여 예외 사이트에서 $ elem * 실제 *가 무엇인지 검사합니다. – user2864740
당신의 바이올린은 잘 작동하는 것 같습니다! 그리고'$ elem'은 새로운 것이 아닙니다. 여러분이'.hasClass()'를 사용하기 위해'milk(), bacon() ..'등을 인자로 전달하는 HTML 객체 일뿐입니다.'[ Object object]''$ (elem)'으로 시도하십시오! –