我有一些jquery代码要在input-change上触发:
$("[data-binding] input").bind('change', function () {
debug('changing');
PerformWCFCall($(this));
}); debug-function只是对console.log的一个调用
问题是它并不是随机触发的。90%的情况下,一切都很正常,但突然它停止工作了几次,然后又开始工作。
PerformWCFCall不包含任何绑定代码,只包含一个对WCF服务的异步调用。
为了以防万一,我还会在调用.bind之前调用$("[data-binding] input").unbind('change')。但我很难弄明白这一点。
希望有人能帮忙
如果你需要更多的信息,请告诉我!
发布于 2011-03-03 21:22:55
确保PerformWCFCall不修改使用$("[data-binding] input")选择的节点,如果这样做的话,请使用live()代替bind()
发布于 2011-03-03 21:18:09
'PerformWCFCall‘对输入做了什么?它会替换它吗?-如果是,请尝试在调用“PerformWCFCall”之后使用“live”而不是bind....or重新绑定。
发布于 2011-03-03 21:21:03
您的jquery选择器看起来很可疑,您是否正在尝试绑定具有数据绑定属性的输入元素?如果是这样的话,你应该改用这个选择器:
$('input[data-binding]')我看到有人已经建议了现场活动,所以我想知道你什么时候做绑定-它是在document.ready之后吗?
此外,如果你正在使用FireFox -如果你还没有安装FireBug (或者使用IE的IE开发者工具,或者chrome中的调试器)来查看处理程序是否在javascript错误后停止工作( 10%的情况下)-它可能是WCF调用出错的一部分。还要安装fiddler (http://www.fiddler2.com/fiddler2/)来检查从客户端到您的WCF服务的流量。这里出了点问题,可能会导致javascript的执行停止。
https://stackoverflow.com/questions/5181174
复制相似问题