javascript - 如何在 backboneJS 事件中使用多个参数

标签 javascript jquery backbone.js backbone-events

我需要传递onchange函数的第二个参数 (在本例中为“border-radius”)我传递了范围输入,这个值需要传递到 javascript 的 console.log 中。 它已经适用于“值”变量。 “value”变量返回一个整数,但 cssAttribute 变量返回“O​​bject”而不是“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);
});

Demo

关于javascript - 如何在 backboneJS 事件中使用多个参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22092786/

相关文章:

javascript - 如何捕捉和处理 QWebEnginePage 内容的变化?

javascript - 我应该使用 [innerHTML] 还是通常的方式(Angular 2)

javascript - 有了 HTML 表格,如何使用 HTML、CSS 和 JavaScript 在仅显示特定行之间切换

javascript - 更改浏览器 URL 时是否有 Javascript keydown 限制?

javascript - "Backbone.Model.extend() is not a function",我做错了什么?

javascript - 如何轻松关闭弹窗?

javascript - js输出未排序的数组

backbone.js - {无声 :true} in Backbone 1. 0 版本

node.js - 有没有理由不在 node.js 后端使用 Backbone.Model?

javascript - 单击 li 时关闭菜单