Javascript 如何在jQuery中调用click函数来调用另一个click函数
我有两个按钮。当我点击按钮1时,按钮2为禁用状态,当按钮1关闭时,按钮2为启用状态。我正在使用触发器(“单击”),然后出现错误“超出了最大调用堆栈大小”。我怎样才能解决这个问题Javascript 如何在jQuery中调用click函数来调用另一个click函数,javascript,jquery,html,Javascript,Jquery,Html,我有两个按钮。当我点击按钮1时,按钮2为禁用状态,当按钮1关闭时,按钮2为启用状态。我正在使用触发器(“单击”),然后出现错误“超出了最大调用堆栈大小”。我怎样才能解决这个问题 $("#btn1").click(function(){ $('#box1').css('display','block'); $('#box1').addClass('tint'); $("#btn2").off('click'); }); $("#btn2").
$("#btn1").click(function(){
$('#box1').css('display','block');
$('#box1').addClass('tint');
$("#btn2").off('click');
});
$("#btn2").click(function(){
alert("Button 2 was clicked");
});
$('#boxclose1').click(function(){
$('#box1').hide();
$("#btn2").on("click", function(){
$('#btn2').trigger("click"); error here
});
});
这是一种递归调用函数bind来单击元素上的事件#btn2
你可以用
.prop(“已禁用”,真)代码>以禁用和
.prop(“禁用”,false)代码>以启用按钮
$(“#btn1”)。单击(函数(){
$('#box1').css('display','block');
$('#box1').addClass('tint');
$(“#btn2”).prop('disabled',true);
});
$(“#btn2”)。单击(函数(){
警报(“点击按钮2”);
});
$('#boxclose1')。单击(函数(){
$('#box1').hide();
$('btn2').prop('disabled',false);
}); 代码>
#框1{
显示:无;
}
.色调{
颜色:#ff0000;
}
方框1
按钮1
按钮2
Box Close
您正在单击处理程序中触发单击事件,这相当于这样做:函数r(){r();}
为什么要这样做?您是否打算在重新打开侦听器后触发事件?因为调用触发器将调用$(“#btn2”)。在(“单击”上,函数(){
处理程序将再次调用触发器,导致无限递归调用。为什么要调用触发器方法“我有2个按钮。当我单击按钮1时,按钮2被禁用”如果禁用,则使用“.prop”(“禁用”,false);”
$("#btn2").on("click", function(){
$('#btn2').trigger("click"); error here
});