在我的一些项目中,我一直在通过jQuery添加新元素,我偶然发现了一些麻烦的问题.
考虑以下:
$('span.claim').click(function() {
$(this).parent().html('<span class="unclaim">Unclaim</span>'):
});
$('span.unclaim').click(function() {
$(this).parent().html('<span class="claim">Claim</span>'):
});
Run Code Online (Sandbox Code Playgroud)
以下标记......
<ul>
<li><span class="claim">Claim</span></li>
<li><span class="unclaim">Unclaim</span></li>
<li><span class="claim">Claim</span></li>
<li><span class="unclaim">Unclaim</span></li>
</ul>
Run Code Online (Sandbox Code Playgroud)
不幸的是,在触发初始事件之后,不会处理任何后续事件.
我意识到我可以完全重构并使用该.bind()功能,但由于我的项目的复杂性,这实际上并不是那么可行.
如何在创建新元素之后重新绑定事件而不放弃我的匿名函数,或者甚至可能吗?
我的公司有一个ClickOnce应用程序,已经与我们的客户一起使用了大约一年.
我们正在进行重新品牌化,并希望更改应用程序的名称.但是,只更改Visual Studio中的所有常规名称选项,然后构建新部署显然会更改现有应用程序正在查找的清单,因此基本上任何已安装的应用程序都不会看到新的更新.
我已经尝试过乱用.application文件,但我还没有能够得到任何工作.有没有办法重命名已部署的ClickOnce应用程序,还是我们必须让人们只安装新的应用程序?
我正在维护一个大型闭源应用程序的插件(实现为dll).多年来一直运作良好.但是,随着SDK的最新更新,供应商重载全局运营商new和delete.这给我带来了很多麻烦.会发生什么是我的插件分配一个字符串.我将此字符串传递给静态链接库,该库修改它(更改它的长度,从而重新分配它).我的应用程序崩溃了.
原因当然是字符串存在于供应商分配的自定义堆上.静态链接库对此堆一无所知,并尝试在该内存上使用默认的new/delete运算符.繁荣.
现在的问题是:如何保持代码清洁并避免使用供应商的运营商?没有条件预处理器宏.我无法避免包含有问题的标题,因为它包含了2000行以上的插件所需的代码.我不能将提供的分配器传递到另一个库,因为它没有提供任何机制.我已经对供应商提出了相关问题.我不知道还能尝试什么?
附录:经过激烈的辩论后,我设法说服供应商再次从下一版本的SDK中删除重载.我通过简单地破解当前的SDK并手动删除重载来解决我的直接问题.感谢这个帖子中的所有建议.他们作为争论并进一步"证明"为什么重载首先是一个坏主意.
c++ memory-management allocation operator-overloading new-operator
我正撞在墙上.我想匹配一个正则表达式:空字符串A,AB以及ABC,但不是AC.我有这个,有效:
/^(A|AB|ABC)?$/
Run Code Online (Sandbox Code Playgroud)
但这是一种简化; 在我的应用程序A中B,并且C实际上是长字符类,所以我不想一遍又一遍地重复它们.也许我只是没有以正确的方式看待它.我试过这个:
/^((AB?)C?)?$/
Run Code Online (Sandbox Code Playgroud)
但那仍然相配AC.
有没有更简单的方式来做到这一点,这可以扩展到(比方说)ABCD,ABCDE等等?
编辑:通过延伸到ABCDE,我的意思是会匹配:空字符串A,AB,ABC,ABCD,ABCDE.基本上,一个"开头"正则表达式.
我想跟踪创建的用户,然后更新给定模型的所有记录.我在登录用户的UserProfile中有"用户"信息(所有用户必须登录才能更新这些记录).
所以问题是Delphi 2009/2010中的字符串文字(或const字符串)是否可以直接转换为PAnsiChar,还是首先需要对AnsiString进行额外的转换才能使其工作?
背景是我在具有C接口的旧DLL中调用函数,该接口具有一些需要C样式的char指针的函数.在过去(在Delphi 2009之前),像下面这样的代码就像一个魅力(其中C DLL函数的参数是LPCSTR):
之一:
LegacyFunction(PChar('Fred'));
Run Code Online (Sandbox Code Playgroud)
要么
const
FRED = 'Fred';
...
LegacyFunction(PChar(FRED));
Run Code Online (Sandbox Code Playgroud)
因此,在更改为Delphi 2009(现在是2010年)时,我将调用更改为:
LegacyFunction(PAnsiChar('Fred'));
Run Code Online (Sandbox Code Playgroud)
要么
const
FRED = 'Fred';
...
LegacyFunction(PAnsiChar(FRED));
Run Code Online (Sandbox Code Playgroud)
这似乎工作,我从函数调用得到正确的结果.然而,应用程序中存在一些明确的不稳定性,这些不稳定似乎主要发生在调用遗留函数的代码中的第二次或第三次(在转移到2009版本的IDE之前不存在).在研究这个时,我意识到Delphi 2009/2010中的本地字符串文字(和const字符串)是一个Unicode字符串,所以我的演员可能是错误的.这里和其他地方的示例似乎表明此调用看起来应该更像这样:
LegacyFunction(PAnsiChar(AnsiString('Fred')))
Run Code Online (Sandbox Code Playgroud)
令我困惑的是,使用上面第二个示例中的代码,将字符串文字直接转换为PAnsiChar不会生成任何编译器警告.如果不是字符串文字,我正在构建一个字符串var,我会得到一个可疑的强制警告(并且该字符串会被修复).这(以及字符串在DLL中可用的事实)使我相信编译器正在做一些魔术来正确地将字符串文字解释为预期的字符串类型.这是发生了什么,或者是双重演员(首先是AnsiString,然后是PAnsiChar)真的有必要,而且在我的代码中缺少它是难以追踪不稳定的原因吗?对于const字符串,同样的答案是否也适用?
Wordpress 中是否有任何方法可以防止内容编辑器在将图像上传到帖子时选择“全尺寸”选项?我希望它们只有“缩略图”、“中”和“大”选项。我曾经使用 Scissors 插件来做到这一点,但从 Wordpress 2.9 开始,这个插件不再有效。
我已经读过,最好将<script>标签放在文档的末尾.执行此操作的论据似乎是浏览器将停止将页面呈现在脚本标记下方,直到它已加载并执行脚本为止.如果您的脚本标记位于页面顶部,则渲染会暂停一段时间,这很糟糕.
但是,我不确定这是否真的如此.
环顾四周,我通常会看到以下位置......
<head>页面或<body>标签内部Stackoverflow是一个将脚本标记放入其中的站点的示例head,由于它们通常非常注重性能,因此我开始怀疑页面中的位置是否重要.
body元素中的最后一件事放置javascript的另一个常见位置似乎正好在<body>元素的最后.我假设这意味着页面可以在javascript下载时呈现并继续执行其操作.
有没有人对此有任何想法或建议?我希望尝试让我们的页面执行并尽快向用户显示.
有关系吗?在页面顶部有什么好处?页面底部?
我在我的Windows XP机器上运行EmacsW32 23.1.50.1 emacs.它会随机挂起5到8秒,非常令人沮丧.
有人有解决方案吗?
我甚至尝试使用来自gnu ftp站点的emacs win32二进制文件(23.1),并且还会挂起几秒钟.
这里有一些值得注意的processmonitor日志
10:56:59.9888359 PM CreateFile C:\ usr\spool\mail\ PATH NOT FOUND 所需访问:读取数据/列表目录,同步,处置:打开,选项:目录,同步IO非警报,属性:不适用, ShareMode:Read,Write,AllocationSize:不适用
10:57:55.5073038 PM QueryAllInformationFile C:\ emacs.emacs.d\auto-save-list BUFFER OVERFLOW CreationTime:8/27/2009 12:51:26 PM,LastAccessTime:1/5/2010 10:54:40 PM ,LastWriteTime:1/5/2010 10:08:15 PM,ChangeTime:1/5/2010 10:08:15 PM,FileAttributes:D,AllocationSize:0,EndOfFile:0,NumberOfLinks:1,DeletePending:False,Directory :True,IndexNumber:0x1000000001f702,EaSize:0,访问:读取属性,同步,位置:0,模式:同步IO非警报,对齐要求:Word
想知道如何启动命令,例如:
while :; do ./myCommand; done;
Run Code Online (Sandbox Code Playgroud)
但不是做平时
screen -S nameOfMyScreen
Run Code Online (Sandbox Code Playgroud)
然后命令
while :; do ./myCommand; done;
Run Code Online (Sandbox Code Playgroud)
然后拆下屏幕
^a ^d (Control "a" the control "d"
Run Code Online (Sandbox Code Playgroud)
我希望它能够开始和分离.谢谢!
javascript ×2
.net ×1
allocation ×1
browser ×1
c++ ×1
clickonce ×1
command-line ×1
delphi ×1
django ×1
emacs ×1
gnu-screen ×1
installation ×1
jquery ×1
new-operator ×1
performance ×1
pointers ×1
regex ×1
rename ×1
string ×1
unix ×1
windows ×1
wordpress ×1