Javascript 将数据从子单击传递到CanJS中的父事件回调
在CanJS控制器中,我在另一个点击处理程序中使用点击事件。如何将一些数据从子处理程序传递给父处理程序Javascript 将数据从子单击传递到CanJS中的父事件回调,javascript,jquery,canjs,canjs-control,Javascript,Jquery,Canjs,Canjs Control,在CanJS控制器中,我在另一个点击处理程序中使用点击事件。如何将一些数据从子处理程序传递给父处理程序 someController=can.Control({ init:function(element,options){ // some code }, '.someButtonSelector click':function(el,ev) { console.log(this.options.someData) //Returns a
someController=can.Control({
init:function(element,options){
// some code
},
'.someButtonSelector click':function(el,ev)
{
console.log(this.options.someData) //Returns array of objects
ev.preventDefault();
$('#someFormButton').click(function()
{
var formData=can.deparam($('someFormSelector').serialize());
//Want to add formObject in this.options.someData array
})
},
})
我想将formData放入此.options中。此处此
表示someController的对象
,因此我无法在someFormButton
单击事件中直接使用它
还想知道我是否遵循了正确的方法?场景是在单击
someButtonSelector
时出现一个表单。我想将formData放入当前选项对象是否在另一个处理程序中添加单击处理程序?您真正想做什么?您的代码意味着每当有人单击。someButtonSelector
时,新的单击处理程序将添加到#someFormButton
。如果#someFormButton
也在Controls元素中,我认为您要做的事情(在单击#someFormButton
时将序列化数据添加到this.options.formData
)应该如下所示:
var someController = can.Control({
init:function(element,options){
// some code
},
'.someButtonSelector click':function(el,ev)
{
console.log(this.options.someData) //Returns array of objects
ev.preventDefault();
},
'#someFormButton click': function(el, ev) {
var formData = can.deparam($('someFormSelector').serialize());
this.options.formData.push(formData);
}
})