这行JQuery代码意味着什么?

时间:2015-07-05 12:48:19

标签: javascript jquery css3

我在这个网站上发现了这篇文章,其中一个jFiddle显示了JQUery的以下菜单,我看到了这段我无法弄清楚的语法。

JFiddle:http://jsbin.com/oxajeq/3/edit?html,css,js,console,output

我不理解的代码行

$('#mini-logo')[logoSH](300);

我知道第一部分选择id为mini-logo的元素,但我不知道其余的语法是什么!在代码中,[logoSH]可以显示或隐藏,而末尾的()表示持续时间。但是,我找不到任何使用此语法的示例。我还搜索了CSS3,JQUery,过渡,效果,动画,这可能是什么,没有运气。我发现的东西是方法,而其他的不是方法,而是参数,但没有像这个代码。我知道里面的东西不是一种方法,但我无法弄清楚它们是什么。提前感谢您的帮助。

1 个答案:

答案 0 :(得分:11)

此构造基于bracket notation来访问属性。它允许动态选择要应用的方法(showhide)。

logoSH可以是"show""hide"

这意味着你的行是

$('#mini-logo')["show"](300);$('#mini-logo')["hide"](300);

您也可以将其视为

$('#mini-logo').show(300);$('#mini-logo').hide(300);

这是一个常见的构造,您也可以使用三元运算符找到它:

$('#mini-logo')[someBool ? "show" : "hide"](300);

注意:如果没有持续时间,您可以使用toggle函数,该函数将布尔值作为参数。