gpt4 book ai didi

javascript - 为什么我不能在 Backbone 的 View 事件中的一个语句中将单个事件绑定(bind)到多个选择器?

转载 作者:行者123 更新时间:2023-11-30 09:47:23 26 4
gpt4 key购买 nike

我有以下主干 View :

var View = Backbone.View.extend({
events: {
'change [name="title"], change [name="body"]': 'onChangeEvent'
},

onChangeEvent: function (e) {
// fires only for change [name="title"] event
}
});

我需要将 onChangeEvent 方法绑定(bind)到 change [name="title"]change [name="body"] 事件.但是 onChangeEvent 方法只为 change [name="title"] 事件调用,而不是为 change [name="body"] 调用。

请帮帮我,我做错了什么?

最佳答案

来自fine manual :

delegateEvents delegateEvents([events])
[...] Events are written in the format {"event selector": "callback"}.

因此,所讨论的事件是 events 中键的第一个以空格分隔的组件目的。将它应用到你所拥有的给出 'change'作为事件和[name="title"], change [name="body"]作为选择器;此外,逗号是 multiple selector所以你的选择器(如 Backbone 所见)正在寻找带有 name="title" 的东西属性或 <change>带有 name="body" 的元素属性。你没有任何 <change>元素,但你确实有 name="title"元素,因此是您看到的事件触发行为。

您可以将一个事件条目与多个选择器一起使用:

events: {
'change [name="title"], [name="body"]': 'onChangeEvent'
// -------------------^ but no extra 'change'
}

或两个单独的事件条目:

events: {
'change [name="title"]': 'onChangeEvent',
'change [name="body"]' : 'onChangeEvent'
}

关于javascript - 为什么我不能在 Backbone 的 View 事件中的一个语句中将单个事件绑定(bind)到多个选择器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38286898/

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