如何检查鼠标移开时消失的元素?

我不知道它的ID,类或任何东西,但想要检查它.
我试过的解决方案:
在控制台内运行jQuery选择器,$('*:contains("some text")')但没有任何运气,主要是因为该元素未被隐藏但可能从DOM树中删除.
手动检查DOM树的变化给了我什么,因为它似乎太快而无法注意到已发生的变化.
成功:
我在事件断点方面取得了成功.具体来说 - 在我的情况下是mousedown.只需转到Sources-> Event Listener Breakpoints-> Mouse-> mousedownChrome.之后我点击了我要检查的元素,在里面Scope Variables我看到了一些有用的方向.
我使用karma + jasmine + phantom进行无头Javascript测试.
我遇到的问题是我有一个非常大的应用程序,包含许多我想测试的JS模块.所以我需要为每个案例定制模拟,并为每个案例定制包含.
karma.conf.js允许我只有一个files数组,其中包含所有文件的模式,如果我的应用程序很小而且不是一个包含大量文件和模块的大应用程序,那就太棒了.
我现在的解决方案 - karma.conf.js为每个测试用例创建多个文件.但这真的很糟糕,因为有这么多的配置文件是一个很大的膨胀,如果我想改变一个设置(如autoWatch),我需要更改所有的配置文件.
我的另一个解决方案 - 在前面编写自定义处理程序karma.conf.js来处理其他参数(规范文件或文件夹以绕过业力搜索它的配置文件)并简单files地动态构建数组.
现在我看到的问题是业力只运行一次,我只能运行一个测试规范...而且我不想修改KARMA本身.
我也考虑过使用Grunt,但还没有找到一种方法让它适用于多个测试用例.
顺便说一下,我的理想结构是这样的:
有文件:
test/specs/category/unit1_spec.js
test/mocks/category/unit1_mock.js
Run Code Online (Sandbox Code Playgroud)
配置文件:
files: [
{
'includes': [array_of_includes],
'spec': 'spec_file'
}
]
Run Code Online (Sandbox Code Playgroud)
模拟文件将从适当的mocks目录中自动获取.
我可以做karma start test/specs/category,它会递归运行文件夹中的所有测试用例.
tl; dr - 我想测试一个大应用程序.
我将不胜感激任何处理此任务的建议.
我发现Array.prototype.join()在从数组构造字符串时非常有用的方法,比如
"one two three".split(' ').join(', ');
Run Code Online (Sandbox Code Playgroud)
但是我经常要生成这样的字符串:
"one, two and three"
Run Code Online (Sandbox Code Playgroud)
我使用的方法是这样的:
var parts = "one two three".split(' ');
parts.slice(0, parts.length-1).join(', ') + ' and ' + parts.slice(-1)
Run Code Online (Sandbox Code Playgroud)
这会产生我想要的东西,但是我应该把它放到一个单独的函数中.
我喜欢一个衬里,并相信在JS中应该有更优雅的单行程来完成这项任务.有人可以给我一个吗?
编辑
请不要评论编写不可读代码是一种不好的做法.我要一个!:)我从一个衬里学到了很多关于语言结构的知识,所以我看到了一种可能性.没有冒犯的意思.
最后的编辑 我很欣赏Pavlo的答案,因为它真实地展示了一个衬垫能够轻松地成为一个漂亮的可读代码.因为我要求一个班轮,所以根据我的问题,h2ooooooo获得最高分.
我在我的项目中使用了大胆的弹出窗口.要通过jquery关闭此弹出窗口,我使用$('.mfp-close').click(); 它正在运作,但我需要以另一种方式关闭.如果有任何其他方式,Plz帮助我.提前致谢
可以说我有类Date和类Year,Month和Day.
struct Date {
Date(Year year, Month month, Day day) : d(day), m(month), y(year) {};
Date(Month month, Day day, Year year) : d(day), m(month), y(year) {};
Date(Day day, Month month, Year year) : d(day), m(month), y(year) {};
Date(Day day, Year year, Month month) : d(day), m(month), y(year) {};
...
...
private:
Day d;
Month m;
Year y;
}
Run Code Online (Sandbox Code Playgroud)
这允许我没有特定的参数布局,Date因为我有很多过载.
我能自动生成所有排列/过载吗?
只是要清楚:
我该如何将列表对齐?文本完全对齐,但子弹没有.使用CSS有一种简单易用的方法吗?
码:
<ul style="text-align: right">
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
即使我直接将LI元素的规则与rigth对齐,它也不起作用.
编辑
我附上了一张图片,展示了我想要实现的目标:

解决方案 感谢Adriano
" text-align:right; "结合" list-style-position:inside; "做我想要的.谢谢你们!
当我有对象数组时,当我在Chrome控制台中键入变量名称时,我会得到:

问题: 是否有一些选项或标志在启用时会显示在Chrome控制台中查询时扩展的对象和数组?
我经常使用控制台并在控制台中进行内联操作,每次修改数组时我都要点击所有条目来查看值.
我不想写一个可以console.dir排除所有数组的循环.
当我做
for (var i in window) console.log(window[i])
Run Code Online (Sandbox Code Playgroud)
我得到了一个窗口属性和方法列表
当我为"数学"对象做同样的事情时,我什么都没得到.
typeof "window" == typeof "Math"
Run Code Online (Sandbox Code Playgroud)
返回TRUE,所以我没有看到我的循环不起作用的原因.
这很奇怪,好像我直接写,Math['E']我得到常数E的值.
UPDATE
谢谢.所有答案都很有帮助,并提供了我想要的.我赞成他们中的大部分.
考虑一下这种情况:
var a = {
b: {
c: function() {}
}
}
Run Code Online (Sandbox Code Playgroud)
我想窥探c,虽然这很简单:
spyOn(a.b, 'c');
Run Code Online (Sandbox Code Playgroud)
然而,它创造了一个间谍,但它不起作用.没有显示任何错误,我可以看到调试时有间谍.
我怎样才能窥探嵌套方法?
UPDATE
输出是: Object [object Object] has no method 'tohaveBeenCalledWith'
Git --force在很多操作中都有标记,但是当我使用它们时我觉得有点奇怪.就像忽略我的代码中的警告消息一样.
例如,我只想取消暂存文件并执行此操作:
git rm --cached myfile.ext
Run Code Online (Sandbox Code Playgroud)
git抱怨错误:
以下文件具有与文件和HEAD不同的暂存内容
我真的不关心这个错误,它似乎不是一个问题 - 我只是想保留我的代码,但取消暂存文件.--force国旗只是解决了这个问题.
我的问题是关于最佳实践,因为我无法找到有关此问题的任何信息 - 如果在git命令中使用强制标记或者这是一种不好的做法?
UPDATE
我发现了我的这个问题并且有一些见解,我对任何有兴趣的人都有用.
forceflag就像yes/nogit(或任何类似的软件)中的有点对话框.就像做一些可能失败或损坏的事情一样,我们会得到yes/no对话.所以git相当于yes是--force它回答我的问题是force标志使用的仅仅是一个正常的程序.