2016-06-24 8 views
-3

drupal 튜토리얼에서이 기능을 발견했습니다. 누군가 나를 설명 할 수, 왜 다음 자바 스크립트 내 워드 프레스 설치 내에서 작동하지 않으며 나에게 해결책을 줄 수 있습니까?자바 스크립트가 작동하지 않습니다

; 
(function ($) { 
"use strict"; 
    var $corn = $('.corn-anchor'); 
    $corn.each(function(idx, el) { 
    var $el = $(el); 
    $el.once('corn-animation', function() { 
     $(window).on('load', function() { 
     new Waypoint({ 
      element: el, 
      handler: function(direction) { 
      $el.toggleClass('corn-animated', (direction == 'down')); 
      }, 
      offset: '85%' 
     }); 
     }); 
    }); 
    }); 
}); 

는 I는 .corn 애니메이션 셀렉터 CSS 전환을 사용하여 그 래퍼 내의 요소 애니메이션 일부 부 - 래퍼를 전환하여 사용하고자. 나는 웨이 포인트 플러그인을 사용하고 있습니다. 심지어 디버거에서 오류 메시지가 표시되지 않지만 클래스 corn-anchor를 사용하여 요소로 스크롤 할 때 toggleClass가 추가되지는 않습니다.

+1

익명 함수를 호출하지 않고 선언하고 있습니까?! –

+0

그래, 명백한 것 같지만 두려워, 나는 이것에 대해 아주 새로운 것이며 그것을함으로써 배우려고 노력한다 :/ – DoUtDes

답변

4

함수에서 코드를 실행하는 것은 없습니다. 그것을보고, 마지막 줄 (

})(jQuery); 
// ^^^^^^^^---- *call* the function, passing in `jQuery` 

되지 또한

}); 

, 그 단지 닫는 </body> 태그 전에 HTML의 script 태그에 의해로드 된 것 있는지 확인해야 jQuery가 포함 된 script 태그 뒤에). 그렇지 않으면 너무 빨리 실행되어 .corn-anchor 요소를 찾지 못합니다.

스크립트 대신, (당신은 워드 프레스를 사용하고 있기 때문에) 마지막 줄을 변경을 끝 위치를 제어하지 않는 경우, 첫 번째 변경 : 통과, jQuery를 호출

jQuery(function ($) { 

그 기능에서; jQuery는 HTML이 파싱되고 DOM이 채워질 때 함수를 나중에 호출 (첫 번째 인수로 전달)합니다. ready의 별칭입니다.

+0

안녕하세요. T.J, 답장을 보내 주셔서 감사합니다! 나는 이것을위한 해결책을 얻기 위해 어젯밤의 대부분을 사용했고 그것을 얻지 못했습니다. jQuery (function) ($) {디버거가 약간의 에러를 주었다. $ el.once ('corn-animation', function() {to $ el.each (function() {and voila, it 작동합니다! :) $ el.once ('corn-animation', function()이 일을 끝내지 못했던 이유를 설명해 주시겠습니까?) 감사합니다. 고마워요, 정말 고마워요! – DoUtDes

+0

@DoUtDes :'$ el. 한 번 ('corn-animation', ... '은 최초로 트리거 될 때 자신을 제거하는'corn-animation '이벤트에 대한 이벤트 핸들러를 연결합니다.) 솔직히, 코드는 많은 의미를 갖지 않습니다. 그것은'window'에 대한'load' 이벤트 핸들러를 연결하고 있습니다. 그 일을하는 것은 매우 이상한 시간 같아요. –

+0

당신이 아마 그것을 수정해야했기 때문에 (당신의 도움으로) + 복사되었습니다. Drupal 튜토리얼에서, Drupal.behaviors.name = { attach : function (context, settings) {내 게시 된 코드 ...로 시작하기 때문에 함수가 조금 다르게 보입니다. 그러나이 두 개의 첫 번째 줄을 사용하면 코드가 작동하지 않아 Wordpress에서 Drupal.behaviors.name과 같은 것을 알 수 없습니다 – DoUtDes

관련 문제