Jquery SyntaxError:应为令牌';}';和WordPress

Jquery SyntaxError:应为令牌';}';和WordPress,jquery,function,Jquery,Function,编辑2012年2月3日:找到了另一个不需要任何其他功能就能自行工作的解决方案;请看下面我自己的答案 我只是不知道这里出了什么问题,而且对于所有其他题为“SyntaxError:Expected token'}”的问题,我都没有找到答案 我正在使用一个粘性的div函数,该函数使在窗口滚动时始终可见 jQuery 1.7.1包含在WordPress中,并在下面两个函数之前加载。根据开发工具加载所有函数 带有各种html的,就放在标签附近 但是我得到了一个SyntaxError:应该是标记“}”错误

编辑2012年2月3日:找到了另一个不需要任何其他功能就能自行工作的解决方案;请看下面我自己的答案


我只是不知道这里出了什么问题,而且对于所有其他题为“SyntaxError:Expected token'}”的问题,我都没有找到答案

我正在使用一个粘性的
div
函数,该函数使
在窗口滚动时始终可见

jQuery 1.7.1包含在WordPress中,并在下面两个函数之前加载。根据开发工具加载所有函数

带有各种html的
就放在
标签附近

但是我得到了一个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);
(函数($){
$.fn.extend({
//插件名称-jsticky
jsticky:函数(选项){
//设置列表和默认值
var默认值={
玛金托普:0
};
var options=$.extend(默认值,选项);
返回此值。每个(函数(){
var o=期权;
//将当前元素分配给变量,在这种情况下为UL元素
var obj=$(本);
var offset=obj.offset();
var topOffset=offset.top;
var marginTop=obj.css(“marginTop”);
var marginTopNum=parseInt(marginTop);
var diff=拓扑偏移-边缘偏移;
var offset=obj.offset();
var topOffset=offset.top;
var leftOffset=offset.left;
var marginTop=obj.css(“marginTop”);
var marginLeft=obj.css(“marginLeft”);
$(窗口)。滚动(函数(){
var windowscorltop=$(window.scrollTop();
var scrollTop=WindowScrollTop+o.marginTop;
如果(scrollTop>=topOffset){
obj.css({
marginTop:o.marginTop,
marginLeft:leftOffset,
位置:'固定'
});
}
如果(滚动顶部<拓扑偏移){
obj.css({
玛金托普:玛金托普,
marginLeft:marginLeft,
位置:'相对'
});
}
});
});
}
});
})(jQuery);

错误完全正确。
您从未从就绪回调中关闭外部
(函数(){

您缺少一个
})

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

$(document).ready(function(){
    $('.sticky').jsticky({
        marginTop: 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});
});
}); 

@nnnnnn:这就是为什么我加入了
。好的。我如何关闭函数?@songdogtech:使用解析器期望的
}
。您如何编辑代码?大多数(全部?)IDE和许多简单的文本编辑器(例如记事本++)将显示哪个开始括号与哪个结束括号对,这样您就可以跟踪这种类型的错误。偶的代码编辑器也会这样做。@nnnnnn:我使用的是BBEdit,它有语法高亮显示,但它不是IDE.jslint.com&jshint.com…handy online syntax Validator我试过了,但它会抛出一个“TypeError:“undefined”不是函数(评估“$(文档)”错误。标题中除了jquery 1.7.1之外没有其他JS,但感谢您的帮助;我最终使用了一个不同的解决方案,不需要额外的长脚本。