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

时间:2011-03-03 13:15:12

标签: jquery

我有一些jquery代码可以触发输入更改:

$("[data-binding] input").bind('change', function () {
    debug('changing');
    PerformWCFCall($(this));
}); 

debug - 函数只是对console.log

的调用

问题在于它随机不会发射。 90%的时间一切正常,但突然间它停止工作几次,然后重新开始工作。

PerformWCFCall不包含任何绑定代码,只包含对WCF服务的异步调用。

在调用$("[data-binding] input").unbind('change')之前我也打电话给.bind以防万一。但是我很难搞清楚这个。

希望有人可以提供帮助

如果您需要更多信息,请与我们联系!

3 个答案:

答案 0 :(得分:0)

'PerformWCFCall'对输入做了什么?它会取代它吗? - 如果是这样,请尝试使用'live'而不是bind ....或在调用'PerformWCFCall'后重新绑定。

答案 1 :(得分:0)

您的jquery选择器看起来很可疑,您是否尝试绑定具有数据绑定属性的输入元素?如果是这样,您应该使用此选择器:

$('input[data-binding]')

我看到有人已经建议了直播活动,所以我想知道你什么时候进行绑定 - 它是在document.ready之后吗?

此外,如果您正在使用FireFox - 如果您尚未安装FireBug(或使用IE的IE开发人员工具或Chrome中的调试器),请查看处理程序是否停止工作(10%的时间)一个javascript错误 - 它可能是WCF调用出错的一部分。还要安装fiddler(http://www.fiddler2.com/fiddler2/)来检查从客户端到WCF服务的流量。这里出了问题可能会停止你的javascript的执行。

答案 2 :(得分:0)

确保PerformWCFCall不要修改使用$("[data-binding] input")选择的节点,如果不是,请使用live()代替bind()