ページ内に3つのツールチップを作成しようとしていますが、機能していません。他のツールチップをクリックしたときに開くことができない
angular.module('ui.bootstrap.demo', ['ngAnimate', 'ui.bootstrap']);
angular.module('ui.bootstrap.demo').controller('TooltipDemoCtrl', function ($scope, $sce) {
$scope.tooltip = {
1: false,
2: false,
3: false
};
$scope.tooltipCloseActive = function(activeTooltip) {
console.log($scope.tooltip);
_.set($scope.tooltip, activeTooltip, true);
_.forOwn($scope.tooltip, function(value, key) {
console.log(value+'*************'+key);
if(activeTooltip !== key && value === true){
console.log('#'+key);
_.set($scope.tooltip, key, false);
$scope.triggerClickOnTooltip(key);
console.log(key);
}
});
};
$scope.triggerClickOnTooltip = function(id) {
setTimeout(function(){
angular.element(document.querySelectorAll('#'+id)).trigger('click');
}, 100);
};
});
HTML:私は、複数のUIツールチップのコードを書かれ、ツールチップのいずれかがクリックされたときに、他のツールチップを閉じたいき
<div class="col-xs-10 col-sm-4">
<p id="1" tooltip-trigger="click"
uib-tooltip="I am a tooltip 1." ng-click="tooltipCloseActive('1');">
<span>tooltip 1:</span>
</p>
<br>
<p id="2" tooltip-trigger="click"
uib-tooltip="I am a tooltip 2." ng-click="tooltipCloseActive('2')">
<span >tooltip 2:</span>
</p>
<br>
<p id="3" tooltip-trigger="click"
uib-tooltip="I am a tooltip 3." ng-click="tooltipCloseActive('3')">
<span>tooltip 3:</span>
</p>
<br>
</div>
。
私はクリックをトリガーしているので、無限ループに入っています。
はちょうどそれを動作させるために方法を知りたい:
考えられる解決策: 1)ユーザーのクリックとトリガクリック差別:私たちはjqueryのではなく、行うことができます方法を知っている(私は区別することができませんでした をそれは動作しませんでした私はなかった
2)使用ツールヒントフラグ()
3)UIのブートストラップをアップグレードし、私は今、私たちのアプリケーションでやって余裕カントoutsideClickを(使用)
)の角度で一度に1つのツールチップだけを有効にするというこの謎を解決する方法はありますか?
ご協力いただければ幸いです。
PLUNKER:私はトリガーに考えて上だったと思うhttp://plnkr.co/edit/mjqGa26auDSY2G8ThAk4?p=preview
http://plnkr.co/edit/RD30KIijvPxFf11w8WdM?p=previewは - ちょうどあなたのコードを更新しようとしました –