jquery 焦点图
<scripttype="text/javascript">vardefaultOpts={interval:4000,fadeInTime:300,fadeOutTim...
<script type="text/javascript">
var defaultOpts = { interval: 4000, fadeInTime: 300, fadeOutTime: 200 };
var _titles = $(".slide .thumb a");
var _bodies = $(".slide .pic a");
var _count = _titles.length;
var _current = 0;
var _intervalID = null;
var stop = function() { window.clearInterval(_intervalID); };
var slide = function(opts) {
if (opts) {
_current = opts.current || 0;
} else {
_current = (_current >= (_count - 1)) ? 0 : (++_current);
};
_bodies.filter(":visible").fadeOut(defaultOpts.fadeOutTime, function() {
_bodies.eq(_current).fadeIn(defaultOpts.fadeInTime);
_bodies.removeClass("cur").eq(_current).addClass("cur");
});
_titles.removeClass("cur").eq(_current).addClass("cur");
};
var go = function() {
stop();
_intervalID = window.setInterval(function() { slide(); }, defaultOpts.interval);
};
var itemMouseOver = function(target, items) {
stop();
var i = $.inArray(target, items);
slide({ current: i });
};
_titles.hover(function() { if($(this).attr('class')!='cur'){itemMouseOver(this, _titles); }else{stop();}}, go);
_bodies.hover(stop, go);
go();
</script>
_current = opts.current || 0;//这句如何理解,current是函数方法? 展开
var defaultOpts = { interval: 4000, fadeInTime: 300, fadeOutTime: 200 };
var _titles = $(".slide .thumb a");
var _bodies = $(".slide .pic a");
var _count = _titles.length;
var _current = 0;
var _intervalID = null;
var stop = function() { window.clearInterval(_intervalID); };
var slide = function(opts) {
if (opts) {
_current = opts.current || 0;
} else {
_current = (_current >= (_count - 1)) ? 0 : (++_current);
};
_bodies.filter(":visible").fadeOut(defaultOpts.fadeOutTime, function() {
_bodies.eq(_current).fadeIn(defaultOpts.fadeInTime);
_bodies.removeClass("cur").eq(_current).addClass("cur");
});
_titles.removeClass("cur").eq(_current).addClass("cur");
};
var go = function() {
stop();
_intervalID = window.setInterval(function() { slide(); }, defaultOpts.interval);
};
var itemMouseOver = function(target, items) {
stop();
var i = $.inArray(target, items);
slide({ current: i });
};
_titles.hover(function() { if($(this).attr('class')!='cur'){itemMouseOver(this, _titles); }else{stop();}}, go);
_bodies.hover(stop, go);
go();
</script>
_current = opts.current || 0;//这句如何理解,current是函数方法? 展开
2个回答
展开全部
要搞清楚这个问题,需要两个知识点:
1、在js逻辑运算中,0、""、null、false、undefined、NaN都会判为false,其他都为true;
2、JS逻辑运算符”||“同其他语言一样,遵循“短路”原理,如 || 中第一个表达式为假就去处理第二个表达式(还有&&正好相反)。
现在说正题,_current = opts.current || 0;
这个运算经常用来判断一个变量是否已定义,如果没有定义就给他一个初始值,这在给函数的参数定义一个默认值的时候比较有用。如果opts.current没有定义,或者是0、""、null、false、undefined、NaN中的任何一个,JS都会认为是flase,也就是说会继续执行||后面的表达式,恩恩,继续也就是说,会给_current赋值为0。
希望能帮到你。
1、在js逻辑运算中,0、""、null、false、undefined、NaN都会判为false,其他都为true;
2、JS逻辑运算符”||“同其他语言一样,遵循“短路”原理,如 || 中第一个表达式为假就去处理第二个表达式(还有&&正好相反)。
现在说正题,_current = opts.current || 0;
这个运算经常用来判断一个变量是否已定义,如果没有定义就给他一个初始值,这在给函数的参数定义一个默认值的时候比较有用。如果opts.current没有定义,或者是0、""、null、false、undefined、NaN中的任何一个,JS都会认为是flase,也就是说会继续执行||后面的表达式,恩恩,继续也就是说,会给_current赋值为0。
希望能帮到你。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询