gpt4 book ai didi

javascript - 在 CanJS 中将数据从子级点击传递到父级事件回调

转载 作者:行者123 更新时间:2023-12-03 12:39:22 26 4
gpt4 key购买 nike

在 CanJS Controller 中,我在另一个单击处理程序中使用单击事件。如何从子处理程序将一些数据传递给父处理程序

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放入this.options中。这里 this 代表 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);
}
})

关于javascript - 在 CanJS 中将数据从子级点击传递到父级事件回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23585877/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com