如何从事件中访问jquery函数属性

时间:2014-09-05 23:57:44

标签: javascript jquery javascript-events coffeescript

使用jquery和coffeescript,如果我有以下html:

<div id="main"></div>

以及以下coffeescript:

button = $('<div>Click here</div>')
button.some_var = "secret message"
button.on "click", ->
    alert this.some_var
$('#main').html button

这不起作用。有没有办法让它发挥作用?或者任何其他方式让特定元素的click事件可以访问特定javascript函数的属性?

提前感谢任何帮助的尝试。

2 个答案:

答案 0 :(得分:2)

您可以使用.data在jQuery对象上存储数据。

button = $ '<div>Click here</div>'

button.data 'some_var', 'secret message'

button.on 'click', ->
    alert $(@).data 'some_var'

JsFiddle Demo

答案 1 :(得分:2)

jQuery绑定方法的上下文设置为触发事件的DOM元素。您可以针对jQuery Object设置属性.some_var,而不是DOM元素节点。

如果要针对元素存储属性,可以执行以下操作:

button.get(0).somevar = "secret message"

正如@Kyle评论的那样 - 如果你想简单地数据与一个元素相关联,那么最好在jQuery对象上使用.data()方法,这允许一个键 - 值存储而不操纵本机元素。