【问题标题】:CSS borders and strange element boundaries in Ember.jsEmber.js 中的 CSS 边框和奇怪的元素边界
【发布时间】:2014-04-11 07:09:29
【问题描述】:

背景信息:

我正在使用 ember.js。在我的标记中,我有

<script type="text/x-handlebars" id="add">
  {{#view App.AddView id="drop"}}
      {{msg}}
  {{/view}}
</script>

这个视图就像

App.AddView = Ember.View.extend({
  dragEnter: function(event) {
    $("#drop").addClass('enter');
    $('#drop').text('Drop it like it\'s hot.');
  },
  dragLeave: function(event) {
    $("#drop").removeClass('enter');
    $('#drop').text('Drag image files here.');
  }
});

以及相关的 CSS:

#drop {
  border: 10px solid gray;
  max-width: 50%;
  margin:auto;
}
#drop.enter {
  box-shadow: 0px 2px 4pt 4pt lightskyblue;
}

问题:

似乎对放置区域边缘的真正位置感到困惑。当我将图像拖到窗口中时,会应用阴影和“像热一样放下”消息......但仅当我拖动框周围的边缘时,而不是框本身。如果我取消对宽度和边距的限制,那么它的行为正常。但是当有边距时,无论我做什么,它都会出现这种奇怪的行为。

我做错了吗?这是我的第一个 ember.js 项目。我应该以不同的方式将 ID 应用于视图创建的元素吗?我应该做一些定位的事情吗?

【问题讨论】:

    标签: javascript jquery html css ember.js


    【解决方案1】:

    我试图重现您的问题。对我来说似乎工作正常 - demo on emberjs.jsbin.com。你可以用 Ember.js 的方式做一些事情。控制器:

    App.AddView = Ember.View.extend({
      classNameBindings: [ 'enter:enter:leave'],
      enter: false,
      dragEnter: function(event) {
        this.set('enter', true);
        this.set('text', 'Drop it like it\'s hot.');
      },
      dragLeave: function(event) {
        this.set('enter', false);
        this.set('text', 'Drag image files here.');
      },
      text: ''
    });
    

    车把模板:

    <script type="text/x-handlebars" id="add">
      {{#view App.AddView id="drop"}}
          {{view.text}}
      {{/view}}
    </script>
    

    您可以访问完整代码here,但其余的只是 Ember.js 入门工具包。

    【讨论】:

    • 修复了它。我仍在试图弄清楚到底是怎么做的。
    • 很高兴听到这个消息。我使用了入门工具包,您可能有更多可能导致问题的 Ember 应用程序代码。
    • 并非如此。我也在使用启动工具包,我的应用程序还没有做任何事情。我想这与试图找到 $("#drop") 来应用类有关,而不是它已经知道“this”是什么?我对 Ember 还不是很了解。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-13
    • 2018-02-10
    • 2012-01-28
    • 1970-01-01
    • 1970-01-01
    • 2019-03-27
    • 2018-01-10
    相关资源
    最近更新 更多