我有这个jquery
$('input#application_submit.bigbutton[value=Agree]').click(function(e){
e.preventDefault();
var reason = $('.agree_reason:visible');
var reason_text = $('.agree_reason:visible textarea');
if(reason.length == 0){
$('.agree').show();
}else{
if(reason_text.val() == ''){
$('.agree').show();
$('#application_agree').css('border', '1px solid #CC0000');
$('.agree_validation_message').show();
}else{
$('input#application_submit.bigbutton[value=Agree]').unbind();
$('input#application_submit.bigbutton[value=Agree]').click();
}
}
});
并且一切都很好,直到unbind ....我需要它做的是删除这个处理程序并执行正常的点击事件但它冻结我的浏览器,因为它在无限循环中我猜....我曾经尝试过jQuery模具基金,也没有运气......任何想法
答案 0 :(得分:6)
您必须将事件类型传递给unbind
$('input#application_submit.bigbutton[value=Agree]').unbind("click");
另外,根据PeeHaa的评论,application_submit
是元素id,因为dom中的元素是唯一的(或至少更好),你可以将其简化为
$('#application_submit').unbind("click");
通过像这样的简单id来选择你几乎总是更好,因为jQuery可以遵循封面下的本地document.getElementById
。
另一项改进是:
var reason = $('.agree_reason:visible');
var reason_text = $('textarea', reason); // it is faster to let jQuery search in context