使用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函数的属性?
提前感谢任何帮助的尝试。
答案 0 :(得分:2)
您可以使用.data
在jQuery对象上存储数据。
button = $ '<div>Click here</div>'
button.data 'some_var', 'secret message'
button.on 'click', ->
alert $(@).data 'some_var'
答案 1 :(得分:2)
jQuery绑定方法的上下文设置为触发事件的DOM元素。您可以针对jQuery Object设置属性.some_var
,而不是DOM元素节点。
如果要针对元素存储属性,可以执行以下操作:
button.get(0).somevar = "secret message"
正如@Kyle评论的那样 - 如果你想简单地将数据与一个元素相关联,那么最好在jQuery对象上使用.data()
方法,这允许一个键 - 值存储而不操纵本机元素。