Javascript 如何理解主干语法
我正在学习Javascript 如何理解主干语法,javascript,css,backbone.js,Javascript,Css,Backbone.js,我正在学习backbone.js。我从backbone.js文档中找到了以下代码 //cretaing class name as Sidebar with extends Backbone.Model class var Sidebar = Backbone.Model.extend({ promptColor:function() { var cssColor = prompt("Please enter a C
backbone.js
。我从backbone.js文档中找到了以下代码
//cretaing class name as Sidebar with extends Backbone.Model class
var Sidebar = Backbone.Model.extend({
promptColor:function() {
var cssColor = prompt("Please enter a CSS color:");
this.set({color1: cssColor});
}
});
//cretaing object for Sidebar class
var sidebarObject = new Sidebar();
//following statement not understand
sidebarObject.on("change:color1", function(model, color23) {
$('#body1').css({background: color23})
});
我的理解是:
每当属性color1
将自动更改时,model('Slidebar')触发sidebarObject.on()
我不明白的是:
model、color23
传递给sidebarObject.on()
的第二个参数。我对那些争论一无所知谢谢。是的,您的第二个假设是正确的,在上面的示例中,侧栏是模型 有两个参数被传递到回调函数:
sidebarObject
只侦听“颜色”更改事件。当您更改模型的特定属性时,将生成此类事件:
this.set({color1: cssColor});
现在,如果将侦听器更改为:
sidebarObject.on("change:taste", function(model, color23) {
$('#body1').css({background: color23})
});
当this.set({color:cssColor})时,它将不再被激发调用code>是因为它侦听“味道”更改:
this.set({taste: 'good'});
我已将上述示例拆分为一把小提琴,以便您可以使用它:
如果你是新手,这整个网站都值得一看
我希望现在它更清楚。根据您的观点1。事件最初发生的模型
,我可以将侧栏
作为参数传递,而不是模型
。如果它使用更多属性(如侧栏对象)on(“更改:口味更改:颜色1”,函数),也可以用简单的示例解释我(model,color23,color24){$('#body1').css({background:color23});alert(“color24”);});
您在回调函数中看到的那些参数是通过主干传递的,您可以重命名它们,但主干仍将在第一位传递模型,在第二位传递事件属性。是的,主干可以侦听多个属性更改事件。我建议您绕着那个小提琴玩。我还修改了它以表示侦听关于多属性:我发布的代码在.html
文件中运行良好。这些代码与我在单独的.js
文件中放置的代码相同。然后将该文件导入到我的.html
文件中。它不起作用。为什么我可以添加任何额外的代码。我不知道您的环境,但我确信问题与此无关不要用脊梁骨。