代码之家  ›  专栏  ›  技术社区  ›  user1532468

单击事件未正确触发

  •  0
  • user1532468  · 技术社区  · 8 年前

    我试图在页面加载时触发click事件,但每次加载时仅触发一次。现在的情况是,在localhost中,它工作正常,但当我上传到服务器时,它根本不会启动。

    其想法是在页面加载时将计数器设置为0,然后将计数器加1以禁用进一步的单击。显然,有一个错误,但我不能解决它。

    我使用jqwidgets和jqxgrid来显示数据,并将类作为变量。我也在使用jquery 1.11.1

    若有人能帮我解决这个问题,我将不胜感激,因为我似乎已经尝试了许多组合,但在本地主机上还可以,但在服务器上什么都并没有。我在服务器上使用的是php v5.3.13 wamp和5.4。非常感谢

    var counter = 0;
    window.onload = function() {
      var calendaricons = document.getElementsByClassName('jqx-icon-calendar');
    
      for (var i = 0; i < calendaricons.length; i++) {
        calendaricons[i].addEventListener('click', function() {
          if (counter === 0) {
            notif({
              type: "info",
              msg: "Test Message",
              width: 650,
              height: 99,
              multiline: true,
              position: "center",
              fade: true,
              //timeout: 3000,
              autohide: false,
              clickable: true
            });
            counter++;
    
          } else {
            return false;
          }
        });
      }
    }
    
    1 回复  |  直到 8 年前
        1
  •  2
  •   ADreNaLiNe-DJ Huy Thành Trương    8 年前

    如果您使用的是jQuery,那么可以使用 one 函数,该函数允许处理程序只运行一次。

    $(window).load(function() {
        $('.jqx-icon-calendar').each(function(index, item) {
            $(this).one("click", function() {
                notif({
                  type: "info",
                  msg: "Test Message",
                  width: 650,
                  height: 99,
                  multiline: true,
                  position: "center",
                  fade: true,
                  //timeout: 3000,
                  autohide: false,
                  clickable: true
                });
            });
        });
    });