여러 "데이터 토글"을 사용한 부트 스트랩 제어


154

"data-toggle"을 통해 하나 이상의 이벤트를 부트 스트랩 제어에 지정하는 방법이 있습니까? 예를 들어, "툴팁"과 "버튼"토글이 할당 된 버튼을 원한다고 가정하겠습니다.
data-toggle = "tooltip button"을 시도했지만 툴팁 만 작동했습니다.

편집하다:

이것은 쉽게 "해결 가능"

$("#newbtn").toggleClass("active").toggleClass("btn-warning").toggleClass("btn-success");

답변:


330

당신이 추가 할 경우 모달 및 툴팁 자바 스크립트를 추가하거나 툴팁 기능을 변경하지 않고를, 당신은 또한 단순히 주위 요소를 래핑 수 :

<span data-toggle="modal" data-target="modal">
    <a data-toggle="tooltip" data-placement="top" title="Tooltip">
      Hover Me           
    </a>
</span>

6
프레젠테이션 레이어에 대한 프레젠테이션 문제를 지연시키기 때문에 실제로 가장 좋은 방법입니다.
LastTribunal

3
그러나 data-toggle="tooltip"메인 (버튼) 요소 내부는 해당 요소 외부에 깔끔하게 표시되지만 스팬 래퍼 내부에 설정된 경우 해당 요소와 겹칩니다.
Benjamin

1
자바 스크립트가 없습니다
tsadkan yitbarek

짧고 간단하며 스마트 한 솔루션. 앵커 태그에 스팬을 추가해도 부트 스트랩의 디자인이 변경되지 않으므로 모델과 툴팁을 함께 실행하기위한 완벽한 솔루션입니다.
ankit suthar

이것은 나를 위해 작동하지 않았다<span data-toggle="modal" data-target="#myModalForm" title="Click to edit row" data-row="0" data-cmid="425" data-id="11788" data-src="1.1.1.1" data-src_desc="null" data-dst="2.2.2.2" data-dst_desc="null" data-protocol="TCP" data-ports="80" data-remarks="none"><a class="btn btn-sm btn-info" data-toggle="tooltip" title="Click to edit row" data-original-title="Click to edit row" data-trigger="hover" href="javascript:void(0)"><i class="fa fa-pencil" aria-hidden="true"></i></a></span>
shorif2000

72

툴팁은 자동으로 초기화되지 않으므로 툴팁의 초기화를 변경할 수 있습니다. 나는 이것을 이렇게했다 :

$(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();

10
$ ( '[data-tooltip = "tooltip"]'). tooltip ();
Ryan Currah

3
귀하의 업데이트 된 답변을 사용하고 매우 쉬웠으며 완벽하게 일했습니다
유일한 화학

1
멋진 솔루션을 포장하는 것보다 최고
D3VELOPER

1
이 문제 (현재이 질문의 다른 솔루션)의 문제는 클릭하여 모달을 연 다음 닫을 때 마우스가 버튼을 떠났어도 툴팁이 다시 표시되거나 표시됩니다. 예를 들어 모든 행에 테이블에 버튼이 있으면 위 / 아래 버튼을 차단할 수 있으므로 매우 성가신 일입니다. 숨기는 방법은 툴팁 바깥 쪽을 클릭하는 것입니다.
포옹

1
래퍼의 허용 된 답변보다 훨씬 많은이 방법을 좋아합니다. DOM을 너무 많이 오버로드하지 않고 HTML5 용량을 확장하므로 매우 간단합니다. 또한 제 경우에는 래퍼 접근 방식이 작동하지 않는 것 같습니다
Canelo Digital

11

다음 jQuery로 마크 업을 변경할 필요 없이이 문제를 해결할 수있었습니다. 이미 모달에 데이터 토글을 사용하고있는 버튼의 툴팁을 원했던 비슷한 문제가있었습니다. 여기서해야 할 일은 버튼에 제목을 추가하는 것입니다.

$('[data-toggle="modal"][title]').tooltip();

9

이것이 방금 구현 한 최상의 솔루션입니다.

HTML

<a data-toggle="tooltip" rel="tooltip" data-placement="top" title="My Tooltip text!">Hover over me</a>

사용하는 방법에 관계없이 포함해야 할 JAVASCRIPT .

$('[rel="tooltip"]').tooltip(); 

1
이것은 깨끗한, 적어도 돌출 답변입니다
Smyrnian

8

아직. 그러나 누군가이 기능을 언젠가 추가 할 것을 제안했습니다.

다음 부트 스트랩 Github 문제는 원하는 것을 완벽하게 보여줍니다. 이 단계에서 해결 방법 코드를 작성하지 않아도 가능합니다.

확인 해봐... :-)

https://github.com/twitter/bootstrap/issues/7011


안타깝게도이 문제 (# 7011)는 거부되었습니다.
TJ Crowder

3

href를 사용하여 모달을로드하고 툴팁에 대한 데이터 토글을 남겨 둡니다.

<a 
    data-toggle="tooltip"
    data-placement="top"
    title="My Tooltip text!"
    href="javascript:$('#id').modal('show');"
>
+
</a>

3

Bootstrap은 Javascript를 통해서만 툴팁을 초기화하도록 강요하기 때문에 data-toggle="tooltip"(필요하지 않기 때문에) class="bootstrap-tooltip"이 Javascript로 변경하여 툴팁을 초기화했습니다.

$('.bootstrap-tooltip').tooltip();

그래서 나는 data-toggle다른 것 (예 :)에 대한 속성을 자유롭게 사용할 수있었습니다 data-toggle="button".


큰. HTML도 추가하십시오.
Web_Developer

2

@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);

2

하나 더 해결책 :

    <a data-toggle="modal" data-target="#exampleModalCenter">
      <span
        class="tags"
        data-toggle="tooltip"
        data-placement="right"
        title="Tooltip text"
      >
        Text
     </span>
   </a>

2

클래스를 사용하는 멋진 솔루션이 있습니다 .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">&times;</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>


1

태그에서 모달을 열고 툴팁 표시를 원할 때 태그 내에 툴팁을 구현하면 태그 근처에 툴팁이 표시됩니다. 이처럼

여기에 이미지 설명을 입력하십시오

태그 외부에서 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>

여기에 이미지 설명을 입력하십시오


0

<a data-toggle="tooltip" data-placement="top" title="My Tooltip text!">+</a>

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.