有人可以解释一下这段 jQuery 代码吗?[复制]
-
19-09-2019 - |
题
可能的重复:
有人可以解释一下这段 jQuery 代码吗?
我之前已经发布过这个问题,但我想改进我的问题(而且我似乎无法在旧线程中做到这一点)。
代码是:
$(document).ready(function()
{
var rot=$('#image3').rotate({maxAngle:25,minAngle:-55,
bind:
[
{"mouseover":function(){rot[0].rotateAnimation(85);}},
{"mouseout":function(){rot[0].rotateAnimation(-35);}}
]
});
});
它取自这里: http://wilq32.googlepages.com/wilq32.rollimage222, ,并且还有一个功能演示(动画图像旋转 - 页面上的第三个演示)。
我需要解释的是:
我知道有一个变量正在被声明 -”腐烂“,但我似乎无法理解声明在哪里结束......
当使用该变量时,它被用作 腐烂[0], 什么是 [0] 代表?这是一个数组吗?
我从未见过 绑定 像这样使用,原始语法是
$("选择器").bind( type, [data], fn );
那到底是怎么回事呢?所有的逗号和是什么 [ ] 关于?
- 最终,我想做的是使用此脚本旋转图像“X”,同时单击“Y”元素。如何做到这一点(最好没有“绑定”)?
谢谢!
解决方案
我认为基本的语法问题已经被其他人解释得很好......
按照:
最终,我想做的是 使用此脚本旋转图像“X”, 当“Y”元素被单击时。这怎么能做到(最好是 没有“绑定”)?
尝试这个:
var x=$("#imagex"); //<-- image to be rotated
var y=$("#elemy"); //<-- element to be clicked
var angleOfRotation=45; //<-- angle of rotation
y.bind("click",function(){
x[0].rotateAnimation(angleOfRotation);
});
其他提示
声明以倒数第二个分号结束。该引用被捕获,并将在稍后执行传递的回调函数期间使用。
rot
是一个 jQuery 对象,它不是一个数组,但可以像数组一样进行索引。
rot[0]
是第一个与选择器匹配的 DOM 对象 #image3
, , IE。ID 为 image3 的对象。
bind
, 在这种情况下,不是函数绑定,而是传递给旋转的选项的一部分。
方括号 [foo, bar]
指示 foo 和 bar 的文字数组。大括号 { foo:“foo”,酒吧:"bar"} 是具有 foo 和 bar 属性的文字对象。
声明以第一个分号结束。
rot
被赋予的值是rotate()
返回(在本例中,与以下结果相同)$('#image3')
, ,由于 jQuery 的 方法链接语法)。之间的一切rotate(
和下一个)
只是传递给的参数rotate()
.是的,
[0]
是数组访问。rot[0]
引用数组中的第一个(“第 0”)项rot
.这里,
{ maxAngle:25, minAngle:-55, bind: ... }
是一个“对象文字”,即具有以下属性的对象的语法maxAngle
,minAngle
, , 和bind
. 。如果您将此对象分配给变量myObject
(而不是仅仅将其作为参数传递给rotate()),然后您可以访问它的属性,例如myObject.maxAngle
,myObject.minAngle
, , 和myObject.bind
. 。在这种情况下bind
不是一个函数,它只是对象的属性名称。
好的,缺少的部分 - 这就是您如何使用上面的代码来触发另一个元素的旋转:
var itemYouWannaRotate = $("#imageToRotate").rotate(0);
$("#TriggerElement").click(function(){
itemYouWannaRotate[0].rotateAnimation(90);
});
谢谢大家,你们的所有回答都有很大的帮助。