我抓住了这个代码形式JCarousel,并试图理解下面的这些行.我是jQuery的新手,而不是那么优秀的JavaScript,所以我不确定什么是jQuery,哪个是JavaScript
this.buttonNext[n ? 'bind' : 'unbind'](this.options.buttonNextEvent, this.funcNext)[n ? 'removeClass' : 'addClass'](this.className('jcarousel-next-disabled')).attr('disabled', n ? false : true);
this.buttonPrev[p ? 'bind' : 'unbind'](this.options.buttonPrevEvent, this.funcPrev)[p ? 'removeClass' : 'addClass'](this.className('jcarousel-prev-disabled')).attr('disabled', p ? false : true);
Run Code Online (Sandbox Code Playgroud)
它正在设置一些css来设置状态,并启用或禁用其中的按钮但我想在我真正理解之后修改它.我只是无法弄清楚它正在做什么100%.
试图理解诸如[n?'bind':'unbind']而且这里也只是链接.这四行中有很多事情要发生.
代码来自这个插件:http://sorgalla.com/projects/jcarousel/
要理解的第一部分是符号解析.Javacript支持点符号和括号表示法.
考虑打开一个新窗口.
window.open()
Run Code Online (Sandbox Code Playgroud)
这是点符号.你告诉翻译,"开放"可以在"窗口"找到.但还有另一种方法可以做到这一点
window['open']()
Run Code Online (Sandbox Code Playgroud)
同样的事情,但用括号表示法.我们不是直接使用符号名称,而是使用字符串文字.这意味着通过使用括号符号进行符号解析,我们可以动态地进行,因为我们可以动态选择或构建字符串,这正是这个代码片段的作用.
this.buttonNext[n ? 'bind' : 'unbind'](...);
Run Code Online (Sandbox Code Playgroud)
是分析的
if ( n )
{
this.buttonNext.bind(...);
} else {
this.buttonNext.unbind(...);
}
Run Code Online (Sandbox Code Playgroud)
如果您不识别?:语法,那就是条件运算符或条件表达式
[expression] ? [valueIfTrue] : [valueIfFalse]
Run Code Online (Sandbox Code Playgroud)
这通常被错误地称为"三元运算符",而实际上它只是一个三元运算符(具有三个操作数的运算符).这是因为在javascript(和大多数语言)中是唯一的三元运算符,因此描述通常过得很快.
这有帮助吗?还有什么需要清理吗?
| 归档时间: |
|
| 查看次数: |
2835 次 |
| 最近记录: |