SyntaxError: Ожидаемый токен '}' и WordPress - PullRequest
0 голосов
/ 02 марта 2012

Изменить 3/02/12: Нашел другое решение, которое работало само по себе без необходимости каких-либо других функций; см. мой собственный ответ ниже.


Я просто не вижу, что здесь не так, и мне не повезло с ответами на все остальные вопросы под названием"SyntaxError: Ожидаемый токен '}'"

Я работаю с липкой div функцией, которая сохраняет <div class="sticky"> всегда видимой при прокрутке окна.

jQuery 1.7.1 включен в WordPress и загружается перед двумя функциями ниже. Все функции загружаются, согласно Dev Tools.

A <div class="sticky">with various html</div> помещается примерно как тег </body>.

Но я получаю ошибку SyntaxError: Expected token '}'.

Это в шапке:

$(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);

Ответы [ 3 ]

1 голос
/ 02 марта 2012

У вас отсутствует }) из готового обратного вызова:

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

Должно быть:

$(document).ready(function(){
    $('.sticky').jsticky({
        marginTop: 0,
    });
});
0 голосов
/ 02 марта 2012

Нашел другое решение, которое работало само по себе без необходимости каких-либо других функций:

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 голосов
/ 02 марта 2012

Ошибка абсолютно правильная.
Вы никогда не закрывали внешнее (function(){.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...