2013-03-25 128 views
0

我刚刚开始使用Javascript,Backbone和jQuery。我遇到了一些如下所示的代码:

someBackboneFunction: function() { 
    this.$('#index1').attr('disabled', 'disabled'); 
} 

此函数在主干视图子类中声明。从我收集的内容来看,这是指使用此骨干视图创建的对象的功能上下文。具有此功能的视图是使用new关键字创建的。如果这是正确的,我不知道什么

this.$('#index1') 

实际上是指。这是否意味着在使用new关键字创建的对象本身上找到index1 id并将其禁用?谢谢!

+1

http://backbonejs.org/#View-dollar – 2013-03-25 02:17:03

回答

2

this.$('#index1')正在查找与选择器#index1匹配的元素作为视图元素本身的子元素。

为了在视图中使用,将会有一个this.$el表示视图的元素,并将其包装为一个jQuery对象。 this.$('selector')this.$el.find('selector')相同。

+0

那么这是否意味着这个$是仅仅是一个主干的东西?它没有用在传统的jQuery中? (例如$('#myelementtofind') – Crystal 2013-03-25 02:15:26

+0

Backbone视图中的!'this。$'类似于将jQuery选择器作用于视图的匹配元素的一种奇特方式,而不是整个文档,这是默认情况下的时候使用jQuery。如果你去任何有jQuery的随机网站(包括这个),在开发工具中打开控制台,输入'this。$('div')',你将会使用jQuery ('div')''或'$('div')',因为'$'在根目录,'window'范围内,在骨干视图中的'this'指的是它自己 - - 视图,View对象有一个名为'$'的属性,希望这对我有帮助! – Stephen 2013-03-25 02:22:57

+0

是非常有帮助的!所以你可以在任何页面上做到这一点$,而不仅仅是一个骨干视图。仍然试图阅读范围,但目前还不完全清楚) – Crystal 2013-03-25 02:24:40

0

从我记得Backbone this.$是jQuery的包装,它允许您选择您的视图范围内的元素。

因此this.$('#index1')应该表示“在我的视图中选择#index1”,并且.attr('disabled', 'disabled')将其disabled属性设置为true。