期望的行为:
用户将项目拖动到树上.将鼠标悬停在一个封闭的节点上时,该节点将展开显示子节点.此时,用户可以继续拖动到子节点并放下它们中的任何节点.
这工作正常.我使用droppables的"over"选项来扩展节点并使子节点可以删除.
但我需要添加更多功能.首先,我为draggables添加了一个帮助器.仍然工作正常.然后我将draggables和droppables放入两个不同的容器(div).此时,帮助程序不会拖出容器.解决方案是在draggables上设置"appendTo:'body'".好的......好吧,不是很好.
现在,子节点在当前拖动操作期间不可删除.用户必须释放当前拖动并重新划分到所需的子节点.如果我删除appendTo选项,问题就会消失,但是帮助程序不会在视觉上移动到droppable容器中.
有什么方法可以"唤醒"这些新的droppables,使它们立即可以放弃?
我试图在onclick事件处理函数中获取一个对象.
但它并没有像我期望的那样发挥作用.
例如,如果我运行此代码:
var entries = [{id: 1},{id: 2},{id: 3}];
for (var i = 0; i < entries.length; i++) {
var entry = entries[i];
document.getElementById(entry.id).onclick = function () {
console.log("this.id: " + this.id);
console.log("entry.id: " + entry.id);
};
}
Run Code Online (Sandbox Code Playgroud)
我的期望是:
this.id: 1
entry.id: 1
this.id: 2
entry.id: 2
this.id: 3
entry.id: 3
Run Code Online (Sandbox Code Playgroud)
但我得到的是:
this.id: 1
entry.id: 3
this.id: 2
entry.id: 3
this.id: 3
entry.id: 3
Run Code Online (Sandbox Code Playgroud)
为什么条目对象始终是id为3的条目?
如何在click事件处理程序中获取正确的条目对象?
我们使用exec-maven-plugin在Node.js下运行RequireJS的优化器(r.js)(因为它比Rhino快得多):
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2</version>
<executions>
<execution>
<id>compile-js</id>
<phase>prepare-package</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<executable>${node.executable}</executable>
<arguments>
<argument>${project.build.directory}/dependency/requirejs/r.js</argument>
<argument>-o</argument>
</arguments>
</configuration>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)
问题是,只要编译过程中出现任何问题,r.js应该脱口而出的错误消息就不会显示在Maven的控制台输出中.我要解决的问题是,我使用-X标志重新运行Maven命令以获取调试输出,以便exec-maven-plugin输出正在执行的实际命令.它是这样的:
project-root/target/dependency/node/node \
project-root/target/dependency/requirejs/r.js \
-o src/main/webapp/app.build.json
当我从命令行手动运行命令时,然后我在控制台中获取实际的编译错误,然后继续修复它们.
我已经尝试将stderr重定向到stdout而2>&1无效(在Windows上),因为我无法立即找到一种方法来制作像重定向位一样的exec-maven-plugin作为参数.我没有太过追求那条路线,因为这只是一个疯狂的猜测,这是一个stderr/stdout问题 - 它可能是,但我只是在猜测.
关于可能发生的事情的任何指示,或者我可以采取进一步诊断步骤的任何建议?请记住,在这个问题中有多个移动部件:Maven,exec-maven-plugin,Node.js,r.js和一个疲惫的脑袋.
PS我正在考虑将requirejs-maven-plugin作为最后的手段,因为项目时间表不允许我现在对POM进行彻底的改造.我正试着看看我能用当前的设置做些什么.
我想在设计c ++类时了解一些最佳实践.
把它放在上下文中,我有一个名为Vec3的c ++类.
class Vec3{
private:
float elements[3];
public:
Vec3(Vec3 v1){...}
Vec3(int x, int y, int z){...}
Vec3 add(Vec3 v1){...}
Vec3 add(int x, int y, int z){...}
...
Vec3 multiply(Vec3 v1){...}
...
int dotProduct(Vec3 v1){...}
Vec3 normalize(){...}
....
int operator[](int pos){...}
};
Run Code Online (Sandbox Code Playgroud)
所以,我有这个类在大小为3的Vector上进行计算.我想知道什么更好.是否使用指针.
我应该返回指针并将我的参数作为指针.
Vec3添加(Vec3 v1)或Vec3*添加(Vec3 v1)或Vec3*添加(Vec3*v1)或....
现在我很困惑,我不知道是否应该在我班上使用指针.我想总有一种方法可以将我的参数发送到不处理指针的函数...
Vec3* v2 = new Vec3(1,1,1);
Vec3 sum = v1.add(*v2);
Run Code Online (Sandbox Code Playgroud)
并且有一个解决方案可能是我能想到的最好的解决方案..拥有这两个功能
Vec3 add(Vec3 v2){...}
Vec3* add(Vec3* v2){...}
Run Code Online (Sandbox Code Playgroud)
但我担心这会导致代码重复,可能会产生开销.
谢谢你的答案......顺便说一句,我可以使用模板来改变Vector的大小,但我更喜欢单独保留我的Vec3类并创建一个Vec4类或者命名为Quaternion.
编辑 这是我带来的解决方案.随意评论或修改或重用代码.一件事.我只想提一下,在我的情况下,这个类应该是透明的.就像我们添加数字一样.
int i = 10;
int j = 15;
int k = …Run Code Online (Sandbox Code Playgroud) function get_arr() {
return array("one","two","three");
}
echo get_arr()[0];
Run Code Online (Sandbox Code Playgroud)
为什么上面的代码会抛出以下错误?
parse error: syntax error, unexpected '['
在新的Kindle 3G中使用WebKit浏览器玩弄时,我注意到了这一点,window.screen.width并且window.screen.height没有反映实际的屏幕尺寸。物理屏幕(或更确切地说,纸张)尺寸为800 x 600。我得到:
但是有趣的是,在我的桌面上运行的Chrome和Safari(也是WebKit)都报告了实际的屏幕分辨率。
根据MDC的介绍,这些属性不是任何规范的一部分,因此可能没有严格定义应报告的宽度/高度。但是,难道不应该期望它们反映实际的屏幕尺寸吗?
我是JavaScript和编程的新手.我已经开始创建我的第一个Web应用程序,我想使用面向对象的方法重写它.我已经阅读了一些关于面向对象JS的文章和书籍章节,关于如何模拟命名空间,模块模式等等,但是我很难思考如何在对象内部组织我的代码,希望你可以帮我这个或者指出了一些示例或最佳实践的正确方向.
我想组织它有点像jQuery与命名空间(可能称为app)和我内部的所有app函数,例如app.func1,app.func2,但是我有其他功能,这些功能在公用事业中使用我希望他们有另一个名字,也许像app.util.func ...我的代码也在我的应用程序中创建自定义对象,但我不知道在哪里放置它们和它们的构造函数在我的内部的正确位置命名空间.
有关如何组织面向对象的JavaScript的任何建议,想法,最佳实践,模板或示例?创建类似代码的简单库的示例会很棒.
提前致谢!
我使用node.js创建TCP服务器,每个连接都是持久的.已知node.js是单进程,如何区分每个连接?是否有类似连接ID的东西?
使用文档cookie时
<script typ="text/javascript">
document.domain="example.com";
</script>
Run Code Online (Sandbox Code Playgroud)
我收到了一个错误.我不知道确切的问题.
错误:未捕获的异常:[例外..."非法document.domain值"代码:"1009"nsresult:"0x805303f1(NS_ERROR_DOM_BAD_DOCUMENT_DOMAIN)"位置:""]
我从文本文件中提取数字并用它们填充int类型的数组.
我正在将值插入到数组中,同时使用这些代码行循环遍历.txt文件(其中k是.txt文件中的数字量):
for (int j = 0; j < k; j++)
inputFile >> tab[j];
Run Code Online (Sandbox Code Playgroud)
当文本文件中的数字小于2,147,483,647时,这是整数类型的最大大小,一切顺利.
当数字大于这个程序时,我假设溢出并且无法插入它,但它之后也无法插入任何数字.
导致溢出发生后不再插入数字的原因是什么?