我正在堆叠如何通过自定义事件触发stick事件。
在下面的代码中,colorChange
事件正常发生,所有绑定(stickit)事件也正常工作,但onSet
事件。
有人可以指出错误的地方吗?
bindings: {
'#color1': {
observe: 'color1',
update : function($el,val){
$el.css("background-color",val);
},
onSet : function(){
//never get fired
},
events : ["colorChange"]
}
}
events : {
"colorChange" : function(){
//the event is occurring
}
}
//somewhere
$("#color1").trigger("colorChange");
<!-- in the html -->
<div id="color1"></div>
答案 0 :(得分:1)
Stickit在表单元素上使用双向绑定,即输入,textarea,输入[type = checkbox],输入[type = radio],选择;对于其他一切StickIt都采用单向绑定。
您应该在表单元素上指定 color1 id。
答案 1 :(得分:0)
虽然我找到了一种方法可以做到这一点,但这有点过时了。
stickit 2way绑定仅适用于表格元素和{@ 1}}之类的元素,如@mavarazy所述。
在致电contenteditable="true"
之前,将div设置为stickit()
和
<div contenteditable="true"></div>
删除属性,初始化后不要让它成为真正的可编辑元素 它现在可以作为2路绑定。
答案 2 :(得分:0)
我知道它已经晚了但它可以帮助别人。更简单的方法是添加updateModel: true
bindings: {
'#color1': {
observe: 'color1',
update : function($el,val){
$el.css("background-color",val);
},
onSet : function(){
//gets the event
},
updateModel: true,
events : ["colorChange"]
}
}