我正在使用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');
}
});
}
}
答案 0 :(得分: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');
}
});
}
}
答案 1 :(得分:0)
请尝试以下操作。 Unbind
OnChange事件,并在运行中再次添加。
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")
答案 2 :(得分:0)
固定。非常感谢你的回复。 MMK unbind()是正确的。我还使用了Kanavi的.attr(“onchange”,“”),但没有使用。检查IE8和CROME。
是Kanavi,我将把它变成一个变量thx for u r suggesion。 StackOverflow ROCKS。
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");
}
});
}
}