我正在使用Hammer.js 2.0.4,我有两个hammerjs实例来监听tap事件:在父div元素中,在子元素中有一个.我希望在孩子处理时停止事件传播.但是,hammer.js 2不支持.
在下面的示例中,我希望tap子事件的事件首先触发,然后触发父事件的事件(事件从子节点冒泡到父节点).相反,它看起来像第一个创建的hammer.js 实例的tap事件首先触发.
尝试以下示例(也在jsbin上):
<!DOCTYPE html>
<html>
<head>
<script src="//cdn.jsdelivr.net/hammerjs/2.0.4/hammer.js"></script>
<style>
#child {
width: 200px;
height: 200px;
background: lightgreen;
}
</style>
</head>
<body>
<p>
See the browser console. Why does the tap event of the parent div fire first?
</p>
<div id="parent">
<div id="child">click here</div>
</div>
<script>
var hammerParent = new Hammer(document.getElementById('parent'));
var hammerChild = new Hammer(document.getElementById('child'));
hammerParent.on('tap', function (event) {
console.log('tap parent');
});
hammerChild.on('tap', …Run Code Online (Sandbox Code Playgroud) 我试图在Java应用程序中将两个数字(不是圆形!)加倍到两位数.我使用DecimalFormat这个,但注意到对于接近于零的负值,值不会四舍五入-0.01到-0.00.
public class MyTest {
void formatAndPrint(double value) {
DecimalFormat df = new DecimalFormat("0.00");
df.setRoundingMode(RoundingMode.FLOOR);
System.out.println(value + " => " + df.format(value));
}
@Test
public void testFloor() {
formatAndPrint(2.3289); // 2.32
formatAndPrint(2.3); // 2.30
formatAndPrint(-1.172); // -1.18
formatAndPrint(0.001); // 0.00
formatAndPrint(0.0001); // 0.00
formatAndPrint(-0.001); // -0.01
formatAndPrint(-0.0001); // -0.00 WRONG, expected: -0.01
}
}
Run Code Online (Sandbox Code Playgroud)
其他的解决方案,如Math.floor(value * 100.0) / 100.0没有这个问题,但有其他的问题,比如错误地地板2.3来2.29.
Java的地板解决方案是否适用于所有情况?
MongoDB Atlas将 MongoDB 托管在云端,有多种大小可供选择,如 2GB、5GB、10GB 等。
我不清楚哪种数据大小适用:在我的例子中,我有一个文档大小为 1.6 GB 的数据库,存储大小约为 0.5 GB(因为文档在存储时被压缩)。
MongoDB Atlas的大小限制是指数据库的文档大小还是存储大小?
在编写JavaScript代码时,我总是注释我在这里描述的函数,例如:
/**
* Add two values
* @param {Number} a
* @param {Number} b
* @returns {Number} the sum of a and b
*/
function add(a, b) {
return a + b;
}
Run Code Online (Sandbox Code Playgroud)
现在,当我编写一个返回Promise的异步函数时,这将是:
/**
* Add two values
* @param {Number} a
* @param {Number} b
* @returns {Promise} the sum of a and b
*/
function add(a, b) {
return new Promise(function (resolve, reject) {
resolve(a + b);
});
}
Run Code Online (Sandbox Code Playgroud)
但是现在返回类型(Promise)的描述错过了Promise在解析时将返回什么类型的信息.
如何表示返回的承诺将以Number? …
我正在寻找一种在打开 WebSocket 时向服务器发送唯一标识符的方法。
我可以通过在连接后发送握手消息来实现这一点,但如果不需要的话那就太好了,相反我可以通过元数据发送和读取标识符,类似于 http 请求中的标头字段。
有没有办法在打开 WebSocket 时发送元数据?
我有一个可以取消的蓝鸟承诺.取消后,我必须做一些工作来巧妙地中止正在运行的任务.可以通过两种方式取消任务:通过promise.cancel()或promise.timeout(delay).
为了能够在取消或超时时巧妙地中止任务,我必须捕获CancellationErrors和TimeoutErrors.捕获CancellationError有效,但由于某种原因我无法捕获TimeoutError:
var Promise = require('bluebird');
function task() {
return new Promise(function (resolve, reject) {
// ... a long running task ...
})
.cancellable()
.catch(Promise.CancellationError, function(error) {
// ... must neatly abort the task ...
console.log('Task cancelled', error);
})
.catch(Promise.TimeoutError, function(error) {
// ... must neatly abort the task ...
console.log('Task timed out', error);
});
}
var promise = task();
//promise.cancel(); // this works fine, CancellationError is caught
promise.timeout(1000); // PROBLEM: this TimeoutError isn't caught!
Run Code Online (Sandbox Code Playgroud)
如何 …