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