Параметры настройки темы jquery - PullRequest
0 голосов
/ 23 октября 2010

Создавая эту тему, я довольно новичок в jquery и, как обычно, борюсь.

Просто посмотрел этот урок и решил попробовать свои настройки темы, чтобы упростить настройку.

Это то, что у меня есть до сих пор:

(function($){

        $.fn.themeSettings = function(options) {

                var
                  slideshow = {
                        opacity: '0.5'
                  },
                  settings = $.extend({}, defaults, options);         
        };

        var slideShowShadow = $('#slideShadowTop, #slideShadowBottom, #slideShadowLeft, #slideShadowRight');

        slideShowShadow.css({ 
                opacity: slideshow.opacity 
        });

})(jQuery);

Любая помощь будет потрясающей, так как она запутывает весь текущий jquery по теме, которую я еще не добавил к ней.

IПодумайте, с помощью кода вы можете увидеть, чего я пытаюсь достичь, но, очевидно, поскольку я новичок в jQuery, я не уверен, как это сделать.

Любая помощь будет высоко ценится, ура

Ответы [ 2 ]

0 голосов
/ 24 октября 2010
$(function(){

        var slideshow = {  
                opacity: 1,
                corners: true,
                shadows: true
        },
            xShadow = {
                opacity: 0.5      
        }; 

        // Slideshow Corners & Shadows        
        var $hWrap = $('#headerTopWrapper');

        if(slideshow.corners){
            $hWrap.prepend('<div id="slideCornersTop"></div>' + "\n" +
                           '<div id="slideCornersBottom"></div>');   
        }

        if(slideshow.shadows){
            $hWrap.prepend('<div id="slideShadowTop"></div>' + "\n" +
                           '<div id="slideShadowBottom"></div>' + "\n" +
                           '<div id="slideShadowRight"></div>' + "\n" +
                           '<div id="slideShadowLeft"></div>'); 
        }


        // Slideshow Shadow Opacity
        var $slideShowShadow = $('#slideShadowTop, #slideShadowBottom, #slideShadowLeft, #slideShadowRight');

        $slideShowShadow.css({
            opacity: xShadow.opacity
        });

});
0 голосов
/ 23 октября 2010

При настройке плагина прямо сейчас, slideShowShadow.css пытается присвоить slideshow.opacity во время загрузки и вне области действия функции themeSettings, что означает, что slideshow.opacity будет undefined. Все, что вам нужно сделать, это переместить последние несколько строк в функцию themeSettings, чтобы они запускались, когда вы применяете плагин к некоторому элементу, вызывая $('#your_elem').themeSettings():

(function($){
  $.fn.themeSettings = function(options) {

    var slideshow = {
          opacity: '0.5'
        },
        settings = $.extend({}, slideshow, options),
        slideShowShadow = $('#slideShadowTop, #slideShadowBottom, #slideShadowLeft, #slideShadowRight');

    slideShowShadow.css({ 
      opacity: settings.opacity 
    });
  };
})(jQuery);

Примечание. Ваш исходный пост ссылается на неопределенную переменную (default) в функции $.extend, которую, я уверен, вы намеревались использовать в качестве объекта slideshow.

...