JSULに複数のliが存在する場合にのみ、パラメータを渡してデフォルトと条件を変更する方法はありますか?
(function($) {
$.fn.newsfader = function(opts) {
// default configuration
var config = $.extend({}, {
fadeInTime: 800,
fadeOutTime: 800,
interval: 5600
}, opts);
// main function
function init(obj) {
var dNewsticker = obj;
var dFrame = dNewsticker.find('.js-frame');
var dItem = dFrame.find('.js-item');
var dCurrent;
var stop = false;
dItem.eq(0).addClass('current');
dItem.eq(0).show();
var move = setInterval(function(){
if(!stop){
dCurrent = dFrame.find('.current');
dCurrent.fadeOut(config.fadeOutTime, function(){
if(dCurrent.next().length !== 0){
dCurrent.removeClass('current');
dCurrent.next().addClass('current');
dCurrent.next().fadeIn(config.fadeInTime);
}
else{
dCurrent.removeClass('current');
dItem.eq(0).addClass('current');
dItem.eq(0).fadeIn(config.fadeInTime);
}
});
}
}, config.interval);
dNewsticker.on('mouseover mouseout', function(e){
if(e.type == 'mouseover'){
stop = true;
}
else{
stop = false;
}
});
}
// initialize every element
this.each(function() {
init($(this));
});
return this;
};
// start
$(function() {
$('.js-newsticker').newsfader(
//How can i make it work with the new time
//fadeInTime: 100, fadeOutTime:100
);
});
})(jQuery);
HTML
<div class="newsticker js-newsticker">
<ul class="js-frame">
<li class="js-item">Google shares top $1,000 after strong earnings.</li>
<li class="js-item">Sleep 'cleans' the brain of toxins.</li>
<li class="js-item">Amaze project aims to take 3D printing 'into metal age'.</li>
</ul>
</div>
どのようにパラメータを上書きすることができます。 fadeInTime
を変更することでコードを再利用できるようにしたいですか?条件のみ、デフォルトの設定を変更するにはul
ヒントよりも大きい: '$ .fn.newsfader =機能(opts){var config = $ .extend {{}、{fadeInTime:800、...}、opts}; ...} ' - [$ .extend()'の仕組み](https:// – Andreas
@ guest271314私のコメントは彼にしか見せてはいけません。そうでなければ私は答えを投稿していたでしょう... – Andreas