小编cmw*_*cmw的帖子

MSIE9 - 当宽度和填充的CSS同时调整时,input/textarea中的文本不服从当前填充

我有一个简单的脚本添加和删除padding-left对文字区域/输入focus/ blur分别.这是为了在场地的左侧为一个小的,绝对定位的按钮腾出空间,而不会阻挡它下方的文本.[编辑]它同时改变元素的宽度,以保持块的总大小一致.

在几乎所有的浏览器中,除了MSIE 9之外,这个工作得很好和花花公子.[编辑]虽然框保持相同的大小,表明两个属性的CSS都已正确更新,但输入/ textarea中的文本表现得好像填充没有改变.我知道focus/ blurevents 的回调正在正确触发和更新DOM对象的样式属性,因为获取属性的当前值总是会给出预期的值.

var field = $(field);
field.css({
  'padding-left' : 0
});
console.log(field.css('padding-left')); // '0px'
Run Code Online (Sandbox Code Playgroud)

然而,input/textarea字段中的文本仍显示先前的填充.基本上,当您尝试同时更改宽度和填充时,某些内容似乎会混淆MSIE9的渲染引擎.

一旦你开始在字段中键入,MSIE将解决问题,并使输入/ textarea中的文本服从当前填充.认识到这一点,我尝试添加一个field.val(field.val());到的结束blurfocus回调.这解决了一个问题,并以将插入位置重置到输入/文本区域的开头的形式引入了另一个问题.

有没有办法强制浏览器重绘一个给定的元素而不通过删除并重新插入DOM的戏剧?

[编辑]

这是一个小提示,显示代码的缩写形式(在其实际上下文中具有附加功能):

http://jsfiddle.net/KYrXM/

您将看到填充更新,但在您开始键入之前不会进行任何可见的更改.

如果我选择不更改width属性,这个问题就会消失,尽管我需要在我的应用程序中保持框大小不变.

javascript css internet-explorer

6
推荐指数
1
解决办法
693
查看次数

在Angular中装饰服务提供商

我正在开发一个库,它扩展了一些功能,ui.router用于构建应用程序状态集.目前我通过enhancedState在表单中定义一个新的提供程序(让我们称之为)来管理它:

myApp.provider('enhancedState', EnhancedState);

EnhancedState.$inject = ['$stateProvider'];
function EnhancedState ($stateProvider) {
  this.$stateProvider = $stateProvider;
}
EnhancedState.prototype = {
  /* fun new methods that wrap $stateProvider */
  $get: ['$state', function ($state) {
    /* maybe wrap some $state functionality too */
    return $state;
  }
};
Run Code Online (Sandbox Code Playgroud)

然后,我可以enhancedStateProvider在我的应用程序配置中使用my 来按照我的库的扩展功能执行有趣的新状态定义.

但是,我更愿意直接装饰这门$stateProvider课程.我知道Angular的$provider.decorate()实用程序,但据我所知,它只能用于装饰生成的服务实例,而不是提供程序.

有没有人成功地使用它来装饰提供者,或者是否知道在Angular 1.x中这样做的机制类似?

谢谢!

decorator angularjs

5
推荐指数
1
解决办法
2627
查看次数

带有sbt和scala.swing的NoClassDefFoundError

我是JVM的新手,所以如果这是一个常见的问题我会道歉.我在OSX上使用Scala(2.12)和sbt 0.13.13.

我正在开发一个依赖于GUI库scala.swing(2.10.x)的小应用程序.我几乎立即用示例代码(http://otfried.org/scala/index_28.html)遇到了运行时问题.

具体来说,在调用时,sbt run我得到一个带有以下内容的stacktrace:

[error] (run-main-0) java.lang.NoClassDefFoundError: scala/Proxy$class
java.lang.NoClassDefFoundError: scala/Proxy$class
    at scala.swing.Window.<init>(Window.scala:25)
    at scala.swing.Frame.<init>(RichWindow.scala:75)
    at scala.swing.MainFrame.<init>(MainFrame.scala:19)
Run Code Online (Sandbox Code Playgroud)

(Proxy似乎是scala stdlib中的类/特征)

读取SO和其他地方表明,当编译时出现的代码随后无法在运行时定位时,通常会发出这种异常.实际上,代码编译得很好,只有在运行代码时才会出现问题.

我发现的所有建议都是classpath为了解决这些问题.但是,如果sbt要相信控制台,我的编译时和运行时类路径是相同的:

> show compile:fullClasspath
[info] * Attributed(/Users/chris/Projects/thing2/target/scala-2.12/classes)
[info] * Attributed(/Users/chris/.ivy2/cache/org.scala-lang/scala-library/jars/scala-library-2.12.1.jar)
[info] * Attributed(/Users/chris/.ivy2/cache/org.scala-lang/scala-swing/jars/scala-swing-2.10.6.jar)
[success] Total time: 0 s, completed Dec 24, 2016 7:01:15 PM
> show runtime:fullClasspath
[info] * Attributed(/Users/chris/Projects/thing2/target/scala-2.12/classes)
[info] * Attributed(/Users/chris/.ivy2/cache/org.scala-lang/scala-library/jars/scala-library-2.12.1.jar)
[info] * Attributed(/Users/chris/.ivy2/cache/org.scala-lang/scala-swing/jars/scala-swing-2.10.6.jar)
[success] Total time: 0 s, completed Dec 24, 2016 7:01:19 PM
Run Code Online (Sandbox Code Playgroud)

所以,我发现自己处于一种法医僵局.关于在哪里寻找下一个的任何建议将非常感激.为清楚起见,这只发生在 …

swing scala classpath sbt

5
推荐指数
1
解决办法
1045
查看次数

将bash命令发送到emacs中的开放终端缓冲区

最近,我一直在努力改善emacs的生活,而我所做的一件事就是合理地利用projectileperspective整理缓冲区。

在此过程中,我编写了一个elisp函数来打开(或返回)特定于项目的命名ansi-term缓冲区。这使我可以快速进入当前正在查看的项目的bash终端。

在遍历Interweb之后,我一直无法找到的问题是,是否有可能从emacs中将bash命令发送到开放的ansi-term缓冲区。具体来说,我正在尝试确保将ansi-term缓冲区cds首次打开时正确的项目根目录。这需要projectile首先从包中获取上下文,因此我不能将其放入我的中.bashrc

理想情况下,我将能够编写一个elisp函数:

1)按名称选择ansi-term缓冲区(因为我可以为每个项目打开一个具有唯一名称的缓冲区)

2)在该缓冲区中发送并执行命令

有什么办法吗?

编辑

有兴趣的人的最终解决方案:

(defun visit-project-term-buffer ()
  "Create or visit a terminal buffer."
  (interactive)
  (if (not (get-buffer (persp-ansi-buffer-name)))
  (progn
    (split-window-sensibly (selected-window))
    (other-window 1)
    (ansi-term (getenv "SHELL"))
    (rename-buffer (persp-ansi-buffer-name))
    (end-of-buffer)
    (insert (format "cd %s" (projectile-project-root)))
    (term-send-input))
(switch-to-buffer-other-window (persp-ansi-buffer-name))))
Run Code Online (Sandbox Code Playgroud)

emacs bash ansi-term

1
推荐指数
1
解决办法
763
查看次数