Sch*_*aus -1 javascript jquery jquery-plugins
我正在编写一个jQuery插件,它挂钩滚动和拖动事件,并在触发相关事件时旋转元素指向另一个元素.基本上我的插件只检测事件,计算正确的角度,并使用第三方插件相应地旋转元素.为了更好的解释,您可以看到我的插件的演示.
我不想强制使用某个旋转插件,因此旋转功能的名称可能会有所不同.目前我正在使用eval来允许自定义函数名称,但我想找到另一种方法.我试过谷歌搜索,但到目前为止还没有找到解决方案.
那么,有没有办法解决这个问题?旋转函数的名称存储在settings.rotateFunction中:
eval("$(this)." + settings.rotateFunction + "(angle)");
Run Code Online (Sandbox Code Playgroud)
到目前为止,我已经尝试了"new Function(codeToEval)"方法,但由于某种原因这打破了$(this)的使用.
在Javascript中,可以使用以下两种表示法访问成员(属性或函数):
object.memberNameobject["memberName"]第二个在成员在设计时不知道而在运行时期间是特别有用的.这就是为什么你可以用这种方式调用你的旋转函数:
$(this)[settings.rotateFunction](angle);
Run Code Online (Sandbox Code Playgroud)