角度停止事件传播

时间:2016-05-12 21:23:28

标签: javascript jquery angularjs

这是我之前post here的扩展。我把一切都搞定了,但我有一个问题。当我开始介绍时,下拉菜单打开就像我想要的那样,但是当我点击介绍窗口内的按钮(下一个,上一个)时,下拉菜单关闭。如果我使用我的箭头键导航介绍它保持打开状态。因此,即使我使用介绍窗口按钮导航介绍,如何让下拉列表保持打开状态。

这是js部分供参考:

MainCtrl.prototype.startHelp = function() {
    var _this = this;
    _this.$timeout(function () {
        angular.element('#drop-down').click();
    }, 0, false);
    _this.CallMe();
};

2 个答案:

答案 0 :(得分:0)

你可以尝试添加以下按钮点击事件处理函数:

function onClickedNext(event) {
... 
event.preventDefault();
event.stopPropagation();
}

答案 1 :(得分:0)

这可能为时已晚。但我通过修改intro.js代码实现了这一点。只需在intro.js文件中定义的“nextTooltipButton”内停止点击事件传播。

更改onclick listner功能:

//next button
var nextTooltipButton = document.createElement('a');

  nextTooltipButton.onclick = function() {
    if (self._introItems.length - 1 != self._currentStep) {
      _nextStep.call(self);
    }
  };

到:

  //next button
  var nextTooltipButton = document.createElement('a');

  nextTooltipButton.onclick = function() {
    if (self._introItems.length - 1 != self._currentStep) {
      _nextStep.call(self);
      var e = window.event;
      e.stopPropagation();
    }
  };

适用于Chrome浏览器版本56.0.2924.87。截至今天,此代码段为here

我们不需要角度方面的其他变化。