不能在主干视图中应用CSS
Cant apply CSS to Backbone View
刚刚开始学习Backbone,所以这可能是我完全误解了一个核心概念。
下面的代码来自我的视图对象,有一些事情我不明白…
-
为什么CSS改变highlightHero函数不工作。如果我输入
console.log(this.$el.children(".playerIcon"))
之后,我可以在outerHTML属性中看到适当的样式已经添加到对象中,但它还没有对DOM中的元素进行更改。
-
为什么如果我在highlightHero的底部插入一个故意的语法错误,整个事情工作完美,尽管抛出一个异常,
.
initialize: function(){
this.model.on('change', this.render, this);
this.model.on('change:isHero', this.highlightHero, this);
},
events: {
'click .playerIcon': 'toggleHero'
},
toggleHero: function(){
this.model.toggleHero();//This just toggles a boolean
},
highlightHero: function(){
if(this.model.get('isHero')==true)
{
this.$el.children(".playerIcon").css("background-image", "url('/imgs/user-red.png')");
console.log(this.$el.children(".playerIcon"))
}
else
{
this.$el.children(".playerIcon").css("background-image", "url('/imgs/user.png')");
}
},
highlightHero
在change:isHero
事件后被成功调用,并应用反映在DOM中的CSS类。然而,随后change
事件被触发,导致视图在没有应用CSS的情况下重新渲染,并且它很快就会注意到。如果您添加了一个语法错误,change
事件将不会被调用,因为应用程序崩溃了。
要解决这个问题,我建议在渲染函数中调用highlightHero
并删除change:isHero
事件。
相关文章:
- 如果文本字段为空,则使用JavaScript应用CSS样式
- 如果30秒未单击,请应用CSS一次,将其删除,然后重新迭代
- 如何通过按键激活按钮应用CSS效果
- Jquery添加一个类之后,如何应用css
- 通过JS添加类时应用CSS转换
- 如何在不链接/jquery的情况下使用方法应用css属性数组
- 如何在页面刷新后使用 jquery 应用 CSS(刷新前构建 CSS)
- AngularJS - 在第一个可见元素上应用 CSS 类(Preferred No JQuery)
- Angular js ng repeat与条件ng类不应用css类
- 点击时在元素上应用css样式,独立于父级
- 如何在react组件上应用css样式
- 使用skel框架构建的响应式网站只有在使用漂亮的URL时才能应用css
- 当使用查询字符串时,我如何应用css
- 选择框在应用 css/javascript 时失去功能
- 使用 setLabel 方法对冻结列的标题应用 CSS
- 如果文件名取自用户,则不应用 CSS 规则
- 对匹配的文本应用 CSS
- 在我的JavaScript中应用CSS
- 如何调试正在应用 css 的 html 代码
- 如何计算应用 CSS 转换矩阵的 DOM 元素的边界矩形大小?不使用 Element.getBoundingClient