2009-05-29 25 views
0

livequeryプラグインに問題があります。バージョン:1.0.3。jquery livequeryプラグインがblurイベントを複数回実行します

ウォッチこのコード:blurイベント後

$('#'+$(celDiv).find('input').attr('id')).livequery('blur',function(){ 
    var idProduct = $('#idProduct').val(); 
    var idSupplier = $('#idSupplier').val(); 
    var lotNumber = $('#lotNumber').val(); 
    var idSpecification = $('#idSpecification').val(); 
    var version = $('#version').val(); 
    var idItemAnalysis = id; 
    var seqItemAnalysis = $(celDiv).parents('tr').find("td").eq(5).text(); 
    var operator = $(celDiv).parents('tr').find("td").eq(1).text(); 
    var val = $('#'+$(celDiv).find('input').attr('id')).val(); 

    if(val != null) 
    { 
     if((operator != '=>' && operator != '<=') && !isNaN(val.replace(',','.'))) 
     { 
      $.post('/Operations/SaveAnalysisResults',{ 
       idProduct: idProduct, 
       idSupplier: idSupplier, 
       lotNumber: lotNumber, 
       idSpecification: idSpecification, 
       version: version, 
       idItemAnalysis: idItemAnalysis, 
       seqItemAnalysis: seqItemAnalysis, 
       val: val 
      }); 
      gridResultsAnalysis.flexReload(); 
     } 
     else{ 
      alert("For this operation, the value must be numerical"); 
      $('#'+$(celDiv).find('input').attr('id')).val(''); 
     } 
    } 
}); 

、livequeryコールは、より以上実行されて、私のデータの整合性に問題が発生します。

解決策として、このコードがすでに実行されていたかどうかを知るためにブール変数を作成しましたが、このソリューションは別の解決策だと思います。

誰か他の解決策がありますか? livequeryプラグインにバグがありますか?

ありがとうございました!

+2

ライブクエリープラグインは、jQueryコアに追加されたものではありません。 – Nosredna

答えて

1

あなたは今、このような1.4.1+でjQueryのコアでこれを行うことができます。

$(celDiv).find('input').live('blur', function(){ 

また、このようなあなたのコール:

$('#'+$(celDiv).find('input').attr('id')).val(); 

だけ指定できます。

$(celDiv).find('input').val(); 

または、関数内:

$(this).val();