0

我正在使用 jQuery 动态添加 onchange 事件。当我更改文本框时,事件会触发两次,两次警报框有时会出现 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 中检查。

是的,Kanavi,我会将其纳入一个变量 thx 以供您建议。StackOverflow 摇滚。

       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 回答