0

問題

Options.whatever(options.slideDirection)の値は、たとえば、slideSpeed:800-> container1、slideSpeed:700-> container2ではなく、両方のコンテナーで同じままです。populateContent()がrunSlider()を呼び出す場合、runSliderが直接呼び出される場合は適切です。

スクリプト呼び出し

$('#container1').slide({

        service : "services/service1.json",
        slideInterval : 2000,
        slideSpeed : 800,
        slideDirection : 'right'
});

$('#container2').slide({
        service : "services/service2.json",
        slideInterval : 7000,
        slideSpeed : 200,
        slideDirection : 'left'
});

プラグイン

$.fn.slide = function(settings) {

    var options = {

        service : '',
        slideInterval : 5000,
        slideSpeed : 800,
        slideDirection : 'right'
    };

    $.extend(options , settings);


    jQuery.populateContent = function(serviceUrl,elm) {
        $.runSlider(elm);
    });

    jQuery.runSlider = function(el) {
        console.log(options.slideDirection);    //***always option value remains the same, shows left always...
    });


    return $(this).each(function() {

        var self = this;            

        $.populateContent(service,self);  -> calls populateContent() ->runSlider()   -> **Not proper option.slideDirection always remain same           
        //$.setSlider(self);          -> directly calls runSlider() -> **It is proper**  option.slideDirection change

    });

});
4

0 に答える 0