对前端不太熟,今天做一个禁用a标签点击事件的功能,走了些弯路,谨记。
a标签代码如下:
<s:if test="#stock.openStatus ==0">
<a href="javascript:void(0);" class="btn" οnclick="APP.openStock('${stock.martketCode}','${stock.openbizUnitid}','${stock.bizId}');">新开</a>
</s:if>
<s:if test="#stock.takeStatus ==0">
<a href="javascript:void(0);" class="btn rightBtn" οnclick="APP.takeStock('${stock.martketCode}','${stock.takebizUnitid}','${stock.bizId}');">下挂</a>
</s:if>
要达到的效果:点击任何一个按钮后禁止所有按钮再产生点击事件,直到接到服务器响应为止。
具体的弯路过程就不说了,就记下一点结论吧。
1:由于在a标签里设置了onclick属性,所以执行语句$btn.off("click")语句不能达到效果
2:使用$btn.removeAttr("onclick")语句才可以
最后的代码如下:
function showTipAndDisableButton(flag) { if (flag) { $('<p class="veri_msg suc"><i></i>查询中,请稍候...</p>').insertAfter($("#stock_table")).css({"display":"inline-block"}); $(".btn").each(function() { $(this).removeAttr("onclick"); $(this).off("click"); }); } else { $('#stock_table').siblings('p.veri_msg').remove(); $(".btn").each(function() { $(this).on("click", function() { eval($(this).attr("bak")); }); }); } }