如何在jQuery中调用click函数到另一个click函数

时间:2016-03-08 02:59:07

标签: javascript jquery html

我有2个按钮。当我点击按钮1时,按钮2被禁用,当按钮1关闭时,按钮2被启用。我正在使用触发器("单击")然后发生错误'超出最大调用堆栈大小'。我该如何解决这个问题。

$("#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
        });
    });   

2 个答案:

答案 0 :(得分:0)

    $("#btn2").on("click", function(){
        $('#btn2').trigger("click"); error here
    });

这是函数绑定到元素#btn2

上的click事件的递归调用

答案 1 :(得分:0)

这很好用

您可以使用

.prop("disabled",true);禁用和

.prop("disabled",false);启用按钮

$("#btn1").click(function(){
        $('#box1').css('display','block');
        $('#box1').addClass('tint');
        $("#btn2").prop('disabled', true);
    });
$("#btn2").click(function(){
        alert("Button 2 was clicked");
    });
$('#boxclose1').click(function(){
        $('#box1').hide();
        $('#btn2').prop('disabled', false);
    });   
#box1 {
  display:none;
}
.tint {
  color: #ff0000;
}
<script src="http://code.jquery.com/jquery-1.8.3.js"></script>
<div id="box1">Box 1</div>
<button id="btn1">Button 1</button>
<button id="btn2">Button 2</button>
<button id="boxclose1">Box Close</button>