「data-toggle」を介してbootstrapコントロールに複数のイベントを割り当てる方法はありますか。たとえば、「ツールヒント」と「ボタン」トグルが割り当てられたボタンが欲しいとしましょう。
data-toggle = "tooltip button"を試しましたが、ツールチップのみが機能しました。
編集:
これは簡単に「回避可能」です
$("#newbtn").toggleClass("active").toggleClass("btn-warning").toggleClass("btn-success");
JavaScriptを追加したり、ツールチップ関数を変更したりせずにmodal and tooltipを追加する場合は、単純に要素をラップすることもできます。
<span data-toggle="modal" data-target="#id">
<a data-toggle="tooltip" data-placement="top" title="My Tooltip text!">+</a>
</span>
ツールチップは自動的に初期化されないため、ツールチップの初期化に変更を加えることができます。私はこのようにした:
$(document).ready(function() {
$('body').tooltip({
selector: "[data-tooltip=tooltip]",
container: "body"
});
});
このマークアップで:
<button type="button" data-target="#myModal" data-toggle="modal" data-tooltip="tooltip" class="btn btn-info" title="Your tooltip">Text here</button>
data-tooltip
に注意してください。
または単に、
$('[data-tooltip="tooltip"]').tooltip();
未だに。ただし、誰かがいつかこの機能を追加することが提案されています。
次のbootstrap Githubの問題は、あなたが望むものの完璧な例を示しています。ただし、この段階で独自の回避策コードを記述することはできません。
見てみな... :-)
次のjQueryでマークアップを変更することなく、この問題を解決できました。モーダルで既にデータトグルを使用しているボタンにツールチップが必要な場合、同様の問題が発生しました。ここで必要なのは、ボタンにタイトルを追加することだけです。
$('[data-toggle="modal"][title]').tooltip();
これは私が実装したばかりの最高のソリューションです。
HTML
<a data-toggle="tooltip" rel="tooltip" data-placement="top" title="My Tooltip text!">Hover over me</a>
JAVASCRIPT使用する方法に関係なく、とにかく含める必要があります。
$('[rel="tooltip"]').tooltip();
クラス.stretched-link
を使用した素敵なソリューションがあります。ボタンにはクラス.position-relative
が必要です。完全な動作例を次に示します。
ツールチップをボタンに追加する必要があります。そうしないと、ボタンの位置が正しくなくなります。
$('[data-toggle="tooltip"]').tooltip();
/*DEMO*/.btn{margin-left:5rem;margin-top:5rem}
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
<!--BUTTON-->
<button class="btn btn-primary position-relative" data-toggle="tooltip" data-trigger="hover" data-placement="left" title="Tooltip text">
<span class="stretched-link" data-toggle="modal" data-target="#exampleModal"></span>
Click Me!
</button>
<!--DEMO MODAL-->
<div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true"><div class="modal-dialog" role="document"><div class="modal-content"><div class="modal-header"><h5 class="modal-title" id="exampleModalLabel">Modal title</h5><button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button></div><div class="modal-body">Modal body</div></div></div></div>
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.bundle.min.js"></script>
Hrefを使用してモーダルをロードし、ツールチップのデータ切り替えを残します。
<a
data-toggle="tooltip"
data-placement="top"
title="My Tooltip text!"
href="javascript:$('#id').modal('show');"
>
+
</a>
BootstrapはJavascriptを介してのみツールチップを初期化するように強制するため、data-toggle="tooltip"
(それは役に立たないので)をclass="bootstrap-tooltip"
に変更し、このJavascriptを使用してツールチップを初期化しました。
$('.bootstrap-tooltip').tooltip();
そして、私は自由にdata-toggle
属性を他の何かに使用しました(例:data-toggle="button"
)。
もう1つのソリューション:
<a data-toggle="modal" data-target="#exampleModalCenter">
<span
class="tags"
data-toggle="tooltip"
data-placement="right"
title="Tooltip text"
>
Text
</span>
</a>
@Roman Holznerの答えを補完するためだけに...
私の場合、ツールチップを表示するボタンがあり、さらにアクションを実行するまで無効のままにしておく必要があります。彼のアプローチを使用すると、モーダルはボタンが無効になっている場合でも機能します。その呼び出しはボタンの外にあるためです-私はLaravelブレードファイルにいます、ただ明確にするためです:)
<span data-toggle="modal" data-target="#confirm-delete" data-href="{{ $e->id }}">
<button name="delete" class="btn btn-default" data-toggle="tooltip" data-placement="bottom" title="Excluir Entrada" disabled>
<i class="fa fa-trash fa-fw"></i>
</button>
</span>
したがって、ボタンがアクティブなときにのみモーダルを表示する場合は、タグの順序を変更する必要があります。
<span data-toggle="tooltip" data-placement="bottom" title="Excluir Entrada" disabled>
<button name="delete" class="btn btn-default" data-href="{{ $e->id }}" data-toggle="modal" data-target="#confirm-delete" disabled>
<i class="fa fa-trash fa-fw"></i>
</button>
</span>
テストする場合は、JQueryコードで属性を変更します。
$('button[name=delete]').attr('disabled', false);
タグでモーダルを開いてツールチップを表示したい場合、タグ内にツールチップを実装すると、タグの近くにツールチップが表示されます。このような
タグの外側でdivを使用し、 "display:inline-block;"を使用することをお勧めします
<div data-toggle="tooltip" title="" data-original-title="Add" style=" display inline-block;">
<a class="btn btn-primary" data-toggle="modal" data-target="#myModal" onclick="setSelectedRoleId(6)">
<span class="fa fa-plus"></span>
</a>
</div>