_this.o = {
speed: 500, // animation speed, false for no transition (integer or boolean)
delay: 3000, // delay between slides, false for no autoplay (integer or boolean)
init: 0, // init delay, false for no delay (integer or boolean)
pause: !f, // pause on hover (boolean)
loop: !f, // infinitely looping (boolean)
keys: f, // keyboard shortcuts (boolean)
dots: f, // display dots pagination (boolean)
arrows: f, // display prev/next arrows (boolean)
fluid: f, // is it a percentage width? (boolean)
starting: f, // invoke before animation (function with argument)
complete: f, // invoke after animation (function with argument)
// More key value pairs
};
现在我检查了一下插件,看到了以下一行:
只有一行使用此f
值,请参见下文:
if ((!target.length || index < 0) && o.loop == f) return;
现在让我详细说明我的困难:
显然在普通的java脚本中f不代表错误,除非你做f = false
。
我做了以下测试以确认:
var obj = {
check : !f,
myname : "lala"
}
console.log(obj.check);
我在控制台中出错了。 “f未定义”。
很明显它没有定义。控制台是对的。所以我回到插件并检查插件。并且遇到了一个实际上通过f in的函数。让我来描述一下我看到的内容,因为代码解释的不仅仅是文字:/**
* Unslider by @idiot and @damirfoy
* Contributors:
* - @ShamoX
*
*/
(function($, f) {
var Unslider = function() {
// Object clone
var _ = _this = this;
// a couple of 100 lines of code .
// Set some options
_this.o = {
pause: !f, // pause on hover (boolean)
loop: !f, // infinitely looping (boolean)
keys: f, // keyboard shortcuts (boolean)
dots: f, // display dots pagination (boolean)
arrows: f, // display prev/next arrows (boolean)
prev: '←', // text or html inside prev button (string)
next: '→', // same as for prev option
fluid: f, // is it a percentage width? (boolean)
starting: f, // invoke before animation (function with argument)
complete: f, // invoke after animation (function with argument)
};
// To slide or not to slide
if ((!target.length || index < 0) && o.loop == f) return;
};
// Create a jQuery plugin
$.fn.unslider = function(o) {
var len = this.length;
return this.each(function(index) {
var me = $(this),
instance = (new Unslider).init(me, o);
});
};
Unslider.version = "1.0.0";
})(jQuery, false);
现在看起来就在顶部,是的,就在上面代码片段的顶部。你看到这一行(function($, f) {
,那就是我发现的那条线是罪魁祸首,它传入的f实际上是'假的',我是console.logged并检查过。
那么我的问题是什么:那么究竟是谁传递了这个错误的价值,以及错误的价值何时何地传递。
我是Jquery和JS的新手,所以请善待并回答。
亲切的问候。
亚历山大。
答案 0 :(得分:2)
来自the github repo的来源的最后一行显示它正在传入:
})(jQuery, false);
查找IIFE http://en.wikipedia.org/wiki/Immediately-invoked_function_expression以了解为何将其传递到