問題
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
});
});