如何使用只调用此函数一次

时间:2017-09-19 20:44:44

标签: javascript jquery

$('#link-1').click(function(e) {
    $link_1 = '1';
    window.open('<?php echo $deliverLink1; ?>');
    myAjax();
    if( $link_1 != '' && $link_2 != ''){
     setTimeout(function() {
        $('#download-now-button').removeClass('not-allowed');
        $("i").removeClass("fa-lock").addClass("fa-unlock-alt");
        $("button.locked-button").removeClass("locked-button").addClass("unlocked-button");
        $("a.button-generator").attr("href", "<?php echo  $deliverFlink; ?>");
        }, 3000);
    }
});

$('#link-2').click(function(e) {
    $link_2 = '1';
    myAjax2();
    window.open('<?php echo $deliverLink2; ?>');
    if( $link_1 != '' && $link_2 != '' ){
     setTimeout(function() {
        $('#download-now-button').removeClass('not-allowed');
        $("i").removeClass("fa-lock").addClass("fa-unlock-alt");
        $("button.locked-button").removeClass("locked-button").addClass("unlocked-button");
        $("a.button-generator").attr("href", "<?php echo $deliverFlink; ?>");
        }, 3000);
    }
});

所以,我的问题是人们不得不点击1&amp; 2,但是,如果两个都被点击,一个功能应该完成,但只能通过点击的按钮,所以这里有两个功能,添加一个锁和所有这些,但我希望它们只添加一个锁图标。我知道这个问题很愚蠢,但我对这一切都很陌生。哦,还有如何将php echo更改为js变量

1 个答案:

答案 0 :(得分:0)

您可以初始化单独的变量以跟踪点击次数:

let link1_click = 0;
let link2_click = 0;

$('#link-1').click(function(e) {
    link1_click++;
    if (link2_click) functionToRunWhenBothClicked();
    $link_1 = '1';
    window.open('<?php echo $deliverLink1; ?>');
    myAjax();
    if( $link_1 != '' && $link_2 != ''){
     setTimeout(function() {
        $('#download-now-button').removeClass('not-allowed');
        $("i").removeClass("fa-lock").addClass("fa-unlock-alt");
        $("button.locked-button").removeClass("locked-button").addClass("unlocked-button");
        $("a.button-generator").attr("href", "<?php echo  $deliverFlink; ?>");
        }, 3000);
    }
});

$('#link-2').click(function(e) {
    link2_click++;
    if (link1_click) functionToRunWhenBothClicked();
    $link_2 = '1';
    myAjax2();
    window.open('<?php echo $deliverLink2; ?>');
    if( $link_1 != '' && $link_2 != '' ){
     setTimeout(function() {
        $('#download-now-button').removeClass('not-allowed');
        $("i").removeClass("fa-lock").addClass("fa-unlock-alt");
        $("button.locked-button").removeClass("locked-button").addClass("unlocked-button");
        $("a.button-generator").attr("href", "<?php echo $deliverFlink; ?>");
        }, 3000);
    }
});

看起来您已经将PHP值回显到脚本中,因此在为JS变量赋值时可以这样做:

let string_var = '<?php echo $some_string_value; ?>';
var numeric_var = <?php echo $some_number; ?>;