2012-03-01 2 views
0

편집 3/02/12 : 다른 기능을 필요로하지 않고 자체적으로 작동하는 또 다른 해결책을 찾았습니다. 아래 내 대답을 참조하십시오.SyntaxError : 예상 토큰 '}'및 WordPress


난 그냥 여기 잘못하고라는 제목의 다른 모든 질문에 대한 답변 운이 없었 것을 보지 않는다 "구문 에러 : '}'토큰 예상"내가 함께 일하고 있어요

<div class="sticky">을 창 스크롤에서 항상 볼 수있게하는 끈적한 div 기능.

jQuery 1.7.1은 WordPress에 포함되어 있으며 아래 두 기능보다 먼저로드됩니다. Dev Tools에 따라 모든 함수가로드됩니다.

<div class="sticky">with various html</div></body> 태그 바로 옆에 배치됩니다.

하지만 SyntaxError : 예상 토큰 '}'오류가 발생합니다.

는 헤더이다

$(document).ready(function(){ 
    $('.sticky').jsticky({ 
     marginTop: 0, 
    }); 

이 주된 기능은 그 위에 포함되어

(function($){ 
    $.fn.extend({ 
     //plugin name - jsticky 
     jsticky: function(options) { 

      //Settings list and the default values 
      var defaults = { 
       marginTop: 0 
      }; 

      var options = $.extend(defaults, options); 

      return this.each(function() { 
       var o = options; 

       //Assign current element to variable, in this case is UL element 
       var obj = $(this); 


    var offset = obj.offset(); 
    var topOffset = offset.top; 
    var marginTop = obj.css("marginTop"); 
    var marginTopNum = parseInt(marginTop); 

    var diff = topOffset - marginTopNum; 


    var offset = obj.offset(); 
       var topOffset = offset.top; 
       var leftOffset = offset.left; 
       var marginTop = obj.css("marginTop"); 
       var marginLeft = obj.css("marginLeft"); 


       $(window).scroll(function() { 
        var WindowScrollTop = $(window).scrollTop(); 
        var scrollTop = WindowScrollTop + o.marginTop; 

        if (scrollTop >= topOffset){ 

         obj.css({ 
          marginTop: o.marginTop, 
          marginLeft: leftOffset, 
          position: 'fixed' 
         }); 
        } 

        if (scrollTop < topOffset){ 

         obj.css({ 
          marginTop: marginTop, 
          marginLeft: marginLeft, 
          position: 'relative' 
         }); 
        } 
       }); 


      }); 
     } 
    }); 
})(jQuery); 
+0

코드를 어떻게 수정하고 있습니까? 대부분의 (모든?) IDE와 상당수의 간단한 텍스트 편집기 (예 : 메모장 ++)는 어떤 벌크 쌍이 닫는 대괄호로 표시되는지 알려주기 때문에이 유형의 버그를 추적 할 수 있습니다. [jsfiddle] (http://jsfiddle.net)의 코드 에디터조차도 그렇게합니다. – nnnnnn

+0

@nnnnnn : BBEdit을 사용하고 있는데 구문 강조 표시가 있지만 IDE가 아닙니다. – markratledge

+0

jslint.com & jshint.com .... 편리한 온라인 구문 검사기 – charlietfl

답변

0

발견 된 다른 기능이 필요없이 그 자체로 일을 다른 솔루션 :

var name = "#sticky"; 
var menuYloc = null; 

$(document).ready(function(){ 
menuYloc = parseInt($(name).css("top").substring(0,$(name).css("top").indexOf("px"))) 
$(window).scroll(function() { 
offset = menuYloc+$(document).scrollTop()+"px"; 
$(name).animate({top:offset},{duration:500,queue:false}); 
}); 
}); 
0

에러가 정확히 맞습니다.
(function(){을 절대로 닫지 않았습니다.

+0

누락 된')'도 있습니다 ... – nnnnnn

+0

@nnnnnn : 그 이유는'('.' – SLaks

+0

OK. 어떻게 함수를 닫습니까? – markratledge

1

당신 가지고 준비 콜백에서 }) 실종 :

$(document).ready(function(){ 
    $('.sticky').jsticky({ 
     marginTop: 0, 
    }); 

그것은해야한다 :

$(document).ready(function(){ 
    $('.sticky').jsticky({ 
     marginTop: 0, 
    }); 
}); 
+0

시도했지만 "TypeError : 'undefined'가 함수가 아닙니다 ('$ (document)'평가 중입니다.)"오류가 발생했습니다. – markratledge

+0

나머지 헤더 코드. – MacMac

+0

jquery 1.7.1 이외의 헤더에는 다른 JS가 없습니다. 도움을 주셔서 감사 드리며, 추가 긴 스크립트가 필요없는 다른 솔루션을 사용하게되었습니다. – markratledge

관련 문제