是否有一个jquery函数来列出属性
Is there a jquery function to list attributes?
是否有一个jquery函数可以列出一个对象的属性?我试图用它来看看为什么我不能设置属性"fill"在
$(document).ready(function(){
$('#emitterButton').click(function(){
$(this).attr({'fill':BUTTON_COLOR_PRESSED});
});
});
。供参考,#emitterButton
为
emitterButton = canvas.circle(emitter_center_x,emitter_center_y,BUTTON_RADIUS)
.attr({'fill':BUTTON_COLOR_UNPRESSED})
.attr({'id':'emitterButton'});
,其中canvas为拉斐尔画布。
您似乎对两种类型的节点包装对象感到困惑。在您的代码中,emitterButton
引用由canvas.circle
创建的Raphael对象,attr
作为可用于更改其状态的方法。
但是在事件处理程序中,$(this)
会给你jQuery
对象。凑巧的是,它也有attr
方法——但它只更改底层DOM节点属性,而不触发相应的事件。
解决方案是通过id
(使用Raphael的Paper.getById(id)方法)再次找到相应的对象:
$('#emitterButton').click(function(){
canvas.getById('emitterButton')
.attr({'fill':BUTTON_COLOR_PRESSED});
});
…或者,有时更好的是,直接缓存对象:
$('#emitterButton').click(function(){
emitterButton.attr({'fill':BUTTON_COLOR_PRESSED});
});
最后,但绝对不是最不重要的,您可以简单地将单击处理程序附加到Raphael的对象(通过Element.click()方法)。
这解决了代码中的实际问题。)为了完整起见,您最初的问题的答案很简单—如果您有一个存储在$el
中的jQuery对象,您可以使用以下表示法访问它的属性列表:
$el[0].attributes
…根据文档, 是一个键值字符串对,表示关于该节点的任何信息。
相关文章:
- 如何使对象属性函数成为事件发射器
- 属性函数的 JavaScript 初始值
- 类型错误: 无法设置未定义的属性<函数>
- Javascript set 属性函数不起作用
- 在循环中运行对象属性函数
- 为什么在枚举属性/函数时键长度不准确
- 主干模型获取属性函数返回上次更新的值
- 使用 Jquery 和对象属性函数时出现类型错误
- Javascript:属性函数中的引用
- 导出的目的是什么属性函数在挖空.js库中
- 检查全局属性/函数是否已在 JavaScript 中被覆盖
- 误解了输入文本值属性函数的正确使用
- 将onClick函数绑定到选项卡的href属性函数
- 当函数的属性函数被调用时,是否可以修改函数本身
- 命名对象属性函数
- Javascript -为什么要循环?(原型属性->构造函数属性->函数对象->构造函数属性)
- 如何从属性函数中引用上面的对象
- Javascript继承:子类型原型不能访问超类型的属性/函数
- 破坏性映射对象属性函数
- React.js:如何定义默认属性函数