单击时使用布尔值,然后使用if语句检查布尔值以运行其他代码

时间:2019-05-14 09:43:12

标签: javascript jquery

我有一个点击功能,当我单击它时,我希望其他按钮知道它已经被单击,然后单击它们即可运行自己的代码。

下面是我目前尝试过的方法,但似乎不起作用。如果我在主document.click中包含if语句,则可以使用它,但是我不希望在另一个单击处理程序中包含单击事件处理程序。

var optionalextraClick = false;

$(document).on('click', '.js-optional-extra', function(e) {
  optionalextraClick = true;

  $('#' + $(this).data().productid).css("visibility", "hidden");
  $('#thank-you-' + $(this).data().productid).fadeIn(1800);
});

if (optionalextraClick == true) {
  $('#js-secure-checkout, .modal-close').click(function() {
    location.reload();
  });

  $('#global_modal').click(function(e) {
    if (!$(e.target).closest('.modal-dialog').length) {
      location.reload();
    }
  });
}

单击js-optional-extra后。我希望其他按钮知道它是正确的,然后当用户单击该按钮时,它将运行该代码。

1 个答案:

答案 0 :(得分:0)

代替它非常简单-

if (optionalextraClick == true) {
   $('#js-secure-checkout, .modal-close').click(function() {
     location.reload();
});

 $('#global_modal').click(function(e) {
   if (!$(e.target).closest('.modal-dialog').length) {
      location.reload();
}
});

尝试-

$('#js-secure-checkout, .modal-close').click(function() {
  if (optionalextraClick == true) {
     location.reload();
 });

您的问题是,由于使用if语句,因此从未分配click事件, 当我放

  

if(optionalextraClick == true)

在事件内声明,事件将被创建并且代码将起作用, 对这两个事件都执行此操作,希望这是有道理的,让我知道是否有不清楚的地方。

除此之外-我真的建议您查看ReactJS / Angular框架,该框架为您抽象了那些元素,使Web开发更加简单和有趣。