[英]Jquery change event doesn't fire every time
我有一些jQuery代码在输入更改时触发:
$("[data-binding] input").bind('change', function () {
debug('changing');
PerformWCFCall($(this));
});
debug
功能只是对console.log
的调用
问题在于它不会随机触发。 90%的时间一切正常,但随后突然停止工作几次,然后又开始工作。
PerformWCFCall
不包含任何绑定代码,而仅包含对WCF服务的异步调用。
为了.bind
万一,在调用.bind
之前,我还要调用$("[data-binding] input").unbind('change')
。 但是我很难弄清楚这一点。
希望有人能帮忙
让我知道您是否需要更多信息!
“ PerformWCFCall”对输入有什么作用? 它会取代它吗? -如果是这样,请尝试使用“实时”而不是bind ....或在调用“ PerformWCFCall”之后重新绑定。
您的jquery选择器看起来可疑,您是否要绑定具有称为数据绑定属性的输入元素? 如果是这样,则应改用此选择器:
$('input[data-binding]')
我看到有人已经建议直播活动,所以我想知道您何时进行绑定-是在document.ready之后吗?
另外,如果您使用的是FireFox-如果尚未安装FireBug(或使用IE的IE开发人员工具或chrome中的调试器),请安装FireBug以查看处理程序是否在发生JavaScript错误后停止工作(10%的时间) -这可能是WCF调用出错的一部分。 还要安装fiddler(http://www.fiddler2.com/fiddler2/),以检查从客户端到WCF服务的流量。 发生问题的地方可能会导致您的JavaScript停止执行。
确保PerformWCFCall
修改通过$("[data-binding] input")
选择的节点,如果这样做的话会使用live()
代替bind()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.