2013-08-23 34 views
80

Tôi mới sử dụng Bootstrap và tôi gặp sự cố khi tải tính năng bật lên và chú giải công cụ để hoạt động. Tôi đã không có vấn đề với những giọt xuống và các mô hình nhưng tôi dường như thiếu một cái gì đó cho popover và tooltips.Bootstrap 3.0 Cửa sổ bật lên và chú giải công cụ

Tôi nhận được chú giải công cụ để hiển thị nhưng chúng không được tạo kiểu và nằm giống như các ví dụ khởi động. Và cửa sổ bật lên không hoạt động.

Vui lòng xem và cho tôi biết những gì tôi đang thiếu.

 <!DOCTYPE html> 
    <html> 
     <head> 
     <title>Bootstrap 101 Template</title> 
     <meta name="viewport" content="width=device-width, initial-scale=1.0"> 
     <!-- Bootstrap --> 
     <link href="css/bootstrap.min.css" rel="stylesheet" media="screen"> 
     <link href="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.1/css/bootstrap-combined.min.css" rel="stylesheet" media="screen"> 
     <link href="css/font-awesome.min.css" rel="stylesheet" media="screen"> 
     <link href="css/index.css" rel="stylesheet" media="screen"> 
     <!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries --> 
     <!--[if lt IE 9]> 
      <script src="../../assets/js/html5shiv.js"></script> 
      <script src="../../assets/js/respond.min.js"></script> 
     <![endif]--> 
     </head> 
     <body> 
     <p id="tool"class="muted" style="margin-bottom: 0;"> 
     Tight pants next level keffiyeh 
     <a href="#" data-toggle="tooltip" title="Default tooltip">you probably</a> haven't heard of them. Photo booth beard raw denim letterpress vegan messenger bag stumptown. Farm-to-table seitan, mcsweeney's fixie sustainable quinoa 8-bit american apparel <a href="#" data-toggle="tooltip" title="Another tooltip">have a</a> terry richardson vinyl chambray. Beard stumptown, cardigans banh mi lomo thundercats. Tofu biodiesel williamsburg marfa, four loko mcsweeney's cleanse vegan chambray. A really ironic artisan <a href="#" data-toggle="tooltip" title="Another one here too">whatever keytar</a>, scenester farm-to-table banksy Austin <a href="#" data-toggle="tooltip" title="The last tip!">twitter handle</a> freegan cred raw denim single-origin coffee viral.</p> 
     <h3>Live demo</h3> 
     <div style="padding-bottom: 24px;"> 
      <a id="pop" href="#" class="btn btn-lg btn-danger" data-toggle="popover" title="A Title" data-content="And here's some amazing content. It's very engaging. right?">Click to toggle popover</a> 
     </div> 

     <!-- jQuery (necessary for Bootstrap's JavaScript plugins) --> 
     <script src="http://code.jquery.com/jquery.js"></script> 
     <!-- Include all compiled plugins (below), or include individual files as needed --> 
     <script type="text/javascript"> 
      $(document).ready(function() { 

       $('.tool').tooltip(); 
       $('.btn').popover(); 

      }); //END $(document).ready() 

     </script> 

     <script src="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.1/css/bootstrap.min.css"></script> 

     </body> 

    </html> 
+0

Tôi vừa đăng câu hỏi tương tự cách đây vài phút, cũng sử dụng BS3 với mọi thứ khác hoạt động như Modals và Tabs nhưng không Tooltips hoặc Popovers ... sẽ cập nhật bạn nên tìm gì đó. – xXPhenom22Xx

+0

cho cửa sổ bật lên, ** tùy chọn ** không được xác định – Cybermaxs

+0

Hiện tại tôi chỉ đang cố gắng để có được hành vi mặc định nhưng tôi quan tâm đến việc hiển thị trên di chuột thay vì nhấp chuột nhưng đó là tiếp theo. Tôi vẫn cần phải đặt một cái gì đó cho các tùy chọn? – user2560895

Trả lời

143

Hóa ra rằng Evan Larsen has the best answer. Xin vui lòng upvote câu trả lời của mình (và/hoặc chọn nó như là câu trả lời đúng) - đó là rực rỡ.

Working jsFiddle here

Sử dụng lừa Evan, bạn có thể nhanh chóng tất cả các tooltips với một dòng mã:

$('[data-toggle="tooltip"]').tooltip({'placement': 'top'}); 

Bạn sẽ thấy rằng tất cả các tooltips trong đoạn dài của bạn đã tooltips làm việc với chỉ là một dòng.

Trong ví dụ jsFiddle (liên kết ở trên), tôi cũng đã thêm một tình huống trong đó một tooltip (bằng nút Đăng nhập) được BẬT theo mặc định. Ngoài ra, mã chú giải công cụ được thêm vào nút trong jQuery, không phải trong đánh dấu HTML.


Popovers làm công việc giống như tooltips:

$('[data-toggle="popover"]').popover({trigger: 'hover','placement': 'top'}); 

Và có bạn có nó! Thành công cuối cùng.

Một trong những vấn đề lớn nhất trong việc tìm công cụ này ra đã làm việc bootstrap với jsFiddle ... Đây là những gì bạn phải làm:

  1. Lấy tham chiếu cho Twitter Bootstrap CDN từ đây: http://www.bootstrapcdn.com/
  2. Dán mỗi liên kết vào notepad và loại bỏ TẤT CẢ ngoại trừ URL. Ví dụ:
    //netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css
  3. Trong jsFiddle, đứng về phía bên trái, mở nguồn lực bên ngoài accordion thả xuống
  4. Dán trong mỗi URL, nhấn dấu cộng sau mỗi lần dán
  5. Bây giờ, mở "Khung & Extensions" accordion thả xuống, và chọn jQuery 1.9.1 (hoặc bất cứ điều gì ...)

NGAY BÂY GIỜ bạn đã sẵn sàng.

+0

trong jsFiddle, tại sao kích hoạt không được bao quanh bởi dấu nháy đơn nhưng vị trí là? – HPWD

+0

Không có lý do chính đáng nào, tôi chỉ bỏ lỡ nó. Nhưng có vẻ như nó hoạt động. Có lẽ các từ khóa đơn không cần dấu ngoặc kép - đôi khi chúng không bắt buộc - tuy nhiên, tôi thường đặt chúng vào. – gibberish

+0

nghe có vẻ hợp lý với tôi. Cảm ơn bạn đã làm rõ. – HPWD

0

Bạn chỉ cần kích hoạt các tooltip:

$('some id or class that you add to the above a tag').popover({ 
    trigger: "hover" 
}) 
+0

Không, điều đó sẽ chỉ hiển thị cửa sổ bật lên khi bạn di chuột qua nó, chứ không phải chú giải công cụ. – CpnCrunch

0

Bạn có một lỗi cú pháp trong kịch bản của bạn và, như ghi nhận của xXPhenom22Xx, bạn phải nhanh chóng các tooltip.

<script type="text/javascript"> 

    $(document).ready(function() { 

     $('.btn-danger').tooltip(); 

    }); //END $(document).ready() 

</script> 

Lưu ý rằng tôi đã sử dụng lớp học "nguy hiểm btn" của bạn. Bạn có thể tạo một lớp khác hoặc sử dụng id="someidthatimakeup".

+0

Ok Tôi đã thay đổi mã để khớp với những gì bạn đề xuất, tôi nghĩ vậy. Nó vẫn không hoạt động. Tôi không biết Javascript nhưng vì vậy đây là một chút khôn lanh. Tôi chỉ cố gắng để có được những ví dụ họ phải làm việc theo cùng một cách. – user2560895

+0

Cửa sổ bật lên hơi khó nhưng tôi có một chú giải công cụ để làm việc như trên. – gibberish

225

tôi sử dụng này trên tất cả các trang của tôi để cho phép tooltip

$(function() { $("[data-toggle='tooltip']").tooltip(); }); 
+3

cảm ơn, trong số tất cả các câu trả lời tôi đã đưa ra, tôi sẽ phải nói rằng tôi có thể dành ít thời gian nhất cho việc này. Nhưng bằng cách nào đó nó đã được trao nhiều điểm nhất. –

+0

Nhưng vấn đề là. nó không làm việc với chrome cho tôi. sau đó tôi đã kết thúc với một số điều http://jsfiddle.net/arunpjohny/4HptX/4/ từ bài đăng này http: // stackoverflow.com/questions/18372632/bootstrap-tooltip-not-working-in-chrome –

+0

@Md Salahuddin, vì vậy nó hoạt động ngay bây giờ, một khi bạn cập nhật jquery của bạn? Bạn đang đặt câu hỏi hay là một tuyên bố? –

26

Làm việc với bootstrap 3: ngắn và đơn giản

Kiểm tra - JS Fiddle

HTML

<div id="myDiv"> 
<button class="btn btn-large btn-danger" data-toggle="tooltip" data-placement="top" title="" data-original-title="Tooltip on top">Tooltip on top</button>  
</div> 

Javascript

$(function() { 
    $("[data-toggle='tooltip']").tooltip(); 
}); 
+0

Điều này sẽ không hoạt động nếu bạn muốn có pop over chức năng cho dữ liệu được tải không đồng bộ (ajax, góc vv) nhưng câu trả lời dưới đây sẽ. –

6

tôi phải làm điều đó trên DOM sẵn sàng

$(document).ready(function() { // this has to be done after the document has been rendered 
    $("[data-toggle='tooltip']").tooltip({html: true}); // enable bootstrap 3 tooltips 
    $('[data-toggle="popover"]').popover({ 
     trigger: 'hover', 
     'placement': 'top', 
     'show': true 
    }); 
}); 

Và thay đổi đơn đặt hàng tải của tôi là:

  • jQuery
  • jQuery UI
  • Bootstrap
+1

tôi đã có một vấn đề tương tự, được tải jquery ui sau khi bootstrap, câu trả lời của bạn làm cho tôi nhận ra vấn đề với điều đó. –

+0

kiểm tra [this] (http://www.tutorialrepublic.com/twitter-bootstrap-tutorial/bootstrap-popovers.php) cho cửa sổ bật lên, ** 1. Kích hoạt các popovers, 2. Định vị các popovers thông qua các thuộc tính dữ liệu ** – stom

5

Đối với một số lý do là cách duy nhất tôi đã có thể để có được mã của tôi để làm việc bằng cách chuyển đổi vài thứ. Nếu không có gì làm việc cho bạn cho đến nay, xin vui lòng cho một whirl này:

$('body').popover({ 
    selector: '[data-toggle="popover"]', 
    trigger: 'hover', 
    placement: 'right' 
}); 
+1

Đây là thứ duy nhất làm việc cho tôi vì phần tử popover có thể không có sẵn để bắt đầu. Cảm ơn! –

Các vấn đề liên quan