jquery livequery插件执行模糊事件更多

时间:2009-05-29 14:23:16

标签: jquery jquery-plugins

我遇到了livequery插件版本:1.0.3。

的问题

观看此代码:

$('#'+$(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插件有bug吗?

谢谢大家!!!

1 个答案:

答案 0 :(得分:1)

现在可以在1.4.1+的jQuery核心中执行此操作:

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

你的电话也是这样的:

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

可以是:

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

或者,在你的功能中:

$(this).val();