2016-05-12 10 views
1

これはこれまでのpost hereの拡張です。私はすべての仕事を持っているが、私は1つの問題があります。イントロを開始すると、ドロップダウンは私が望むのとまったく同じように開きますが、イントロウィンドウ内のボタンをクリックすると、ドロップダウンが閉じられます。矢印キーを使ってイントロをナビゲートすると、開いたままになります。では、イントロウィンドウボタンを使用してイントロをナビゲートしている場合でも、ドロップダウンを開いたままにするにはどうすればよいですか。角度停止イベントの伝播

ここで参照のためのJS部分です:

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

テンプレート内で多くの時間がAngularである場合は、$ eventパラメータを渡してから、$ event.stopPropagation(); –

答えて

0

だけでなく、あなたがイベントハンドラ関数をクリックしてそれらのボタンに以下追加してみてくださいすることができます

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

どこにこれを置くの? – Richard

+0

イントロウィンドウで次のHTMLコードを使用しています: これをng-clickで参照されている関数に追加します – DonCziken

0

これは遅すぎるかもしれません。しかし、私はintro.jsコードを変更することでこれを達成しました。 intro.jsファイルで定義されている "nextTooltipButton"内のクリックイベントの伝播を停止するだけです。

変更するには、このからのonclickのリスナー機能:

//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です。

角度側の変更は必要ありません。

関連する問題