我需要传递onchange函数的第二个参数 (在本例中为“border-radius”)我传递了范围输入,这个值需要传递到 javascript 的 console.log 中。 它已经适用于“值”变量。 “value”变量返回一个整数,但 cssAttribute 变量返回“Object”而不是“border-radius”字符串
HTML
(...)
<input type="range" min="0" max="200" onchange="sidebar.setElementAttributes(this.value,'border-radius')">
(...)
JS:
var Sidebar = Backbone.Model.extend({
setElementAttributes: function(value,cssAttribute)
{
this.set({ property: value });
console.log(cssAttribute); //<- works!
}
});
window.sidebar = new Sidebar;
sidebar.on('change:property',function(model,value,cssAttribute)
{
console.log(value); // <- works!
console.log(cssAttribute); //<- doesn't work, value is 'Object' instead border-radius'
});
最佳答案
您可以使用触发器的选项参数(第二个)将值从触发器传递给监听器。
它将作为第三个参数发送给您的听众。
代码:
var Sidebar = Backbone.Model.extend({
setElementAttributes: function (value, cssAttribute) {
this.set({
property: value
}, {
cssAttribute: cssAttribute
});
}
});
window.sidebar = new Sidebar;
sidebar.on('change:property', function (model, value, options) {
console.log(options.cssAttribute);
});
关于javascript - 如何在 backboneJS 事件中使用多个参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22092786/