繁体   English   中英

jQuery更改事件不会每次都触发

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM