单击事件未正确触发

时间:2017-07-13 08:15:27

标签: javascript jquery

我试图在页面加载时触发单击事件,但每次加载页面时只触发一次。发生的事情是在localhost中它工作正常,但是当我上传到服务器时它根本不会发射。

这个想法是在页面加载时将计数器设置为0然后将计数器加1以禁用进一步的点击。显然,某处有错误,但我无法解决。

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

如果有人可以帮我解决这个问题,我会感激不尽,因为我似乎尝试了很多组合,但是在localhost上没问题,但在服务器上没有。我在服务器上使用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 个答案:

答案 0 :(得分:2)

如果你正在使用jQuery,看起来就是这种情况,你可以使用one函数,只允许你的处理程序一次。

以下是使用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
            });
        });
    });
});