我有这个JavaScript代码:
for (var idx in data) {
var row = $("<tr></tr>");
row.click(function() { alert(idx); });
table.append(row);
}
Run Code Online (Sandbox Code Playgroud)
所以我正在查看一个数组,动态创建行(我创建单元格的部分被省略,因为它并不重要).重要的是我创建了一个包含idx变量的新函数.
但是,idx只是一个引用,因此在循环结束时,所有行都具有相同的功能,并且所有行都提醒相同的值.
我现在解决这个问题的一种方法是这样做:
function GetRowClickFunction(idx){
return function() { alert(idx); }
}
Run Code Online (Sandbox Code Playgroud)
在我调用的调用代码中
row.click(GetRowClickFunction(idx));
Run Code Online (Sandbox Code Playgroud)
这有效,但有点难看.我想知道是否有更好的方法可以在循环中复制idx的当前值?
虽然问题本身不是特定于jQuery(它与JavaScript闭包/范围有关),但我使用jQuery,因此只有jQuery的解决方案才有效.
我试图在我的旧OpenGL程序中添加一些着色器,这些程序可以绘制很多GL_POINTS和一些GL_LINES.
我创建了这两个着色器:
顶点着色器:
void main()
{
vec4 v = vec4(gl_Vertex);
v.z = v.z + sin(v.x*v.x + v.y*v.y)/10.0;
gl_Position = gl_ModelViewProjectionMatrix * v;
}
Run Code Online (Sandbox Code Playgroud)
片段着色器:
#version 120
void main()
{
vec4 myOutputColor = gl_Color;
gl_FragColor = myOutputColor;
//gl_FragColor.r = 0.5;
}
Run Code Online (Sandbox Code Playgroud)
这两个着色器编译和链接没有问题.并且顶点着色器工作得很好,我可以看到GL_POINTS在顶点着色器中使用该sin移位.但问题是,如果背景颜色不是黑色,我只能看到我的GL_POINTS和GL_LINES,因为所有的点和线都呈现为黑色.似乎忽略了渲染代码中使用glColor3f设置的所有颜色.如果我取消注释片段着色器中的注释行,我可以将所有的行和点都设置为红色,但是gl_Color不应该对应于每个点使用glColor3f设置的颜色吗?
我的OpenGL代码中是否还有其他可能导致此行为的内容?
我目前正在使用winform c#中的listview,每次单击listview上的空白区域时,所选项目都将丢失.
在MySQLi准备之后有没有办法获得查询?我的疑问搞得一团糟:
$query = "UPDATE event SET group=?, boxed=?, name=?, location=?, time=?, day=?, type=? WHERE id=? LIMIT 1";
if($stmt = $db -> prepare($query))
{
$stmt -> bind_param("iisssssi", $group, $boxed, $name, $location, $time, $day, $etype, $id);
$stmt -> execute();
$stmt -> close();
}
else
Run Code Online (Sandbox Code Playgroud)
错误信息:
您的SQL语法有错误; 检查与MySQL服务器版本对应的手册,以便在'group = ?, boxed = ?, name = ?, location = ?, time =?,day = ?, type =?附近使用正确的语法.WHERE id =?在第1行限制1'
变量group是一个int,boxed是一个int,其余的是字符串,并且id是一个int.
我正在编写一个供个人使用的应用程序,它将跟踪我到达鼠标的频率,并将反击我已经没用鼠标的时间.当我使用鼠标时,我希望它可以将我的桌面工作区摇动一秒作为负强化动作.
该应用程序将被称为WristSlap,一旦我准备好0.1版本,它将在github上.
我刚把它添加到我的JBOSS服务器上的web.xml中.但它没有效果.我仍然可以连接到不使用双向证书交换的端口.有人有想法吗?
<!-- Force SSL for entire site as described here: http://wiki.metawerx.net/wiki/ForcingSSLForSectionsOfYourWebsite -->
<security-constraint>
<!-- defines resources to be protected (in this case everything)-->
<web-resource-collection>
<!-- name for the resource, can be anything you like -->
<!-- Question: is this referenced anywhere else? -->
<web-resource-name>
Entire Application
</web-resource-name>
<!-- protect the entire application -->
<url-pattern>
/*
</url-pattern>
</web-resource-collection>
<!-- defines protection level for protected resource -->
<user-data-constraint>
<!-- data cannot be observed or changed -->
<!-- how it works in tomcat: …Run Code Online (Sandbox Code Playgroud) 我已经使用iPhone的AddressBook api一段时间了.但是为了提高应用程序性能做了一些重构,我决定"重用"AddressBookCreate返回的ABAddressBookRef,因为我注意到有很大的性能改进.但是,我现在正在随机获得EXEC_BAD_ACCESS错误,我认为原因在于iPhone参考实现中的这个"警告":http://developer.apple.com/iphone/library/documentation/ContactData/Conceptual/AddressBookProgrammingGuideforiPhone/300 -BasicObjects/BasicObjects.html#// apple_ref/DOC/UID/TP40007744-CH3-SW1
重要说明:多个线程不能使用ABAddressBookRef的实例.每个线程必须通过调用ABAddressBookCreate来创建自己的实例.
现在,我认为这只是意味着它不是线程安全的,所以我必须同步访问API,但也许我错了,还有一些其他原因导致多个线程弄乱了数据结构?
有人可以确认它确实是一个线程安全的问题(所以@synchronize应该工作)还是其他一些问题?
干杯
我有执行连接的一个存储过程TableB以TableA:
SELECT <--- Nested <--- TableA
Loop <--
|
---TableB
Run Code Online (Sandbox Code Playgroud)
同时,在事务中,行插入TableA,然后插入TableB.
这种情况偶尔会导致死锁,因为存储过程选择从TableB中获取行,而insert将行添加到TableA,然后每个都希望另一个放弃另一个表:
INSERT SELECT
========= ========
Lock A Lock B
Insert A Select B
Want B Want A
....deadlock...
Run Code Online (Sandbox Code Playgroud)
逻辑要求INSERT首先向A添加行,然后向B添加行,而我个人并不关心SQL Server执行其连接的顺序 - 只要它加入.
修复死锁的一般建议是确保每个人以相同的顺序访问资源.但在这种情况下,SQL Server的优化器告诉我相反的顺序是"更好".我可以强制执行另一个连接顺序,并且查询效果更差.
但是我应该吗?
我应该使用我希望它使用的连接顺序现在和永远覆盖优化器吗?
或者我应该只是捕获错误本机错误1205,并重新提交select语句?
问题不是当我覆盖优化器并且它做非理想的事情时,查询可能会执行多么糟糕.问题是:自动重试是否更好,而不是运行更糟糕的查询?
sql-server error-handling deadlock sql-server-2000 database-deadlocks
我正在切换我们的网站以使用异步Google Analytics,我很好奇它是将事件推送到_gaq数组的方法.据我所知,当ga.js脚本被异步下载时,事件被置于_gaq中的等待模式中.下载脚本后是否会触发,以及如何跟踪文档后加载事件?
一个示例是用户在页面加载后10秒单击链接 - 根据文档,事件应放入_gaq.分析脚本如何检测到这一点?
我正在研究一个正在考虑使用Cassandra作为数据库的项目.我们希望最终迁移到Cassandra,即使我们使用MySQL开始,因为它具有可扩展性.我知道像Facebook,Digg和最近的Twitter这样的大公司正在使用Cassandra,但我不相信任何这些网站都会使用Rails.我的问题是使用Ruby on Rails使用Cassandra是否可行.需要考虑的要点:
感谢任何提示.