0

jQueryを使用してonchangeイベントを動的に追加しています。テキストボックスを変更すると、イベントが2回発生し、2回のアラートボックスが3回発生することがあります。

if(Country.toUpperCase().indexOf("MALAYSIA")!=-1)
{    debugger;
    if(productDesc.toUpperCase().indexOf("SV")!=-1)
    {                   
        $("#<%=txtlAxis.ClientID%>").change(function()
        {         
                if(productDesc.toUpperCase().indexOf("SV")!=-1)
                {                           
                alert('2');
                }
        });  
    }
}
4

3 に答える 3

1

このコードで unbind を使用できますか?

if(Country.toUpperCase().indexOf("MALAYSIA")!=-1)
   {  
        if(productDesc.toUpperCase().indexOf("SV")!=-1)
        {       
            $("#<%=txtlAxis.ClientID%>").unbind();
            $("#<%=txtlAxis.ClientID%>").change(function()
            {         
                 if(productDesc.toUpperCase().indexOf("SV")!=-1)
                 {                           
                    alert('2');
                 }
            });  
        }
   }
于 2012-06-18T12:06:47.300 に答える
0

その修正。お返事ありがとうございます。MMK unbind()は正しいです。Kanaviの.attr( "onchange"、 "")も使用しましたが、使用しません。IE8とCROMEでチェックインしました。

はいカナビ、私はあなたの提案のためにそれを1つの変数thxに取り入れます。StackOverflowROCKS。

       if(Country.toUpperCase().indexOf("MALAYSIA")!=-1)
       {    
            if(productDesc.toUpperCase().indexOf("SV")!=-1)
            {                  
                $(".clstxtlAxis").unbind("change"); 
                $(".clstxtlAxis").change(function()
                {             
                     if(productDesc.toUpperCase().indexOf("SV")!=-1)
                     {
                        alert("2");                                                   
                     }
                }); 
             }
        } 
于 2012-06-18T13:23:09.700 に答える
0

以下で試してみてください。UnbindOnChange イベントをオンザフライで再度追加します。

if(Country.toUpperCase().indexOf("MALAYSIA")!=-1)
{    
    if(productDesc.toUpperCase().indexOf("SV")!=-1)
    {      
        $('.txtlAxisClass').attr("onchange", "");             
        $("#<%=txtlAxis.ClientID%>").change(function()
        {         
             if(productDesc.toUpperCase().indexOf("SV")!=-1)
             {                           
                alert('2');
             }
        });  
    }
}

Downgrading the Performanceまた、以下の式をもう一度再評価することでもあります。したがって、変数に保持します。

productDesc.toUpperCase().indexOf("SV")

于 2012-06-18T12:11:00.153 に答える