2014-03-03 1 views
6

내가 처음에 원하는 요소를 가져 오기 위해 동위 원소를 사용하는이 jsFiddle http://jsfiddle.net/Yvk9q/9/을 발견했습니다.
내 페이지에서 해당 코다를 복사하려고했지만 작동하지 않습니다!
enter image description here
$ 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; 
       }); 

      }); 
+1

을 사용하여 객체를 JQuery 객체로 변환해야합니다. $ ($ elem)을 사용하려고 시도합니다. –

+0

* 비 jQuery * 객체가있을 수 있습니다. DOM 엘리먼트, 또는 hasClass 메소드를 지원하지 않는 다른 "놀라운"값. 개발자 도구를 사용하여 예외 사이트에서 $ elem * 실제 *가 무엇인지 검사합니다. – user2864740

+0

당신의 바이올린은 잘 작동하는 것 같습니다! 그리고'$ elem'은 새로운 것이 아닙니다. 여러분이'.hasClass()'를 사용하기 위해'milk(), bacon() ..'등을 인자로 전달하는 HTML 객체 일뿐입니다.'[ Object object]''$ (elem)'으로 시도하십시오! –

답변

23

$elem은 JQuery 개체가 아닙니다. hasClass (JQuery 객체에서만 호출 가능)을 사용하려면 $($elem)

+1

고마워, 노력 하겠어. jsFiddle에서 작동하는지, 내 사이트에서 작동하지 않는지 왜 말해 줄 수 있습니까? –

+0

나는 시도했다, 그것은 작동하지 않지만 오류가 사라집니다 :) 고마워요! –

+1

'$ elem'이 비어있을 수 있습니다. –

관련 문제