我需要传递onchange函数的第二个参数 (在这种情况下,'border-radius')我传递了范围输入,这个值需要传递到javascript上的console.log中。 它已经适用于'value'变量。 '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'
});
答案 0 :(得分:2)
您可以使用触发器的选项参数(2nd)将值从触发器传递给侦听器。
它将作为第三个参数发送给你的听众。
代码:
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);
});