83 votes

bootstrap "tooltip" et "popover" ajoutent une taille supplémentaire dans le tableau

Nota:
En fonction de votre version de Bootstrap (antérieure à la version 3.3 ou non), vous aurez peut-être besoin d'une réponse différente.
Faites attention aux notes.

Lorsque j'active les infobulles (survol de la cellule) ou les popovers dans ce code, la taille du tableau augmente. Comment puis-je éviter cela ?

Ici emptyRow - fonction pour générer tr avec 100

<html>
<head>
    <title></title>
    <script type="text/javascript" language="javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
    <link type="text/css" rel="stylesheet" href="http://twitter.github.com/bootstrap/assets/css/bootstrap.css">
    <script type="text/javascript" language="javascript" src="http://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/2.2.1/bootstrap.min.js"></script>
    <style>    
    #matrix td {
        width: 10px;
        height: 10px;
        border: 1px solid gray; 
        padding: 0px; 
    }
    </style>
<script>
function emptyRow() {
        str = '<tr>'
        for (j = 0; j < 100; j++) {
            str += '<td rel="tooltip" data-original-title="text"></td>'
        }
        str += '</tr>'
        return str
    }
    $(document).ready(function () {
        $("#matrix tr:last").after(emptyRow())
        $("[rel=tooltip]").tooltip();
    });
    </script>
</head>
<body style="margin-top: 40px;">
<table id="matrix">
    <tr>
    </tr>
</table>
</body>
</html>

merci en conseil !

0 votes

De quelle taille supplémentaire parlez-vous exactement ? js génère 100 cellules dans une ligne sous la ligne vide prédéfinie. J'ai créé un violon

0 votes

@Devellar, la taille augmente lors de l'activation de l'infobulle (survol de la cellule).

0 votes

@MikhaillErofeev J'ai aussi le même problème. Si vous le résolvez, dites-le moi.

1voto

Nikunj Patel Points 195

Vous devez initialiser Info-bulle dans la fonction datatable fnDrawCallback

"fnDrawCallback": function (data, type, full, meta) { $('[data-toggle="tooltip"]').tooltip({ placement: 'right', title: 'heyo', container: 'body', html: true }); },

Et définissez votre colonne comme suit

 {
      targets: 2,
      'render': function (data, type, full, meta) {
       var htmlBuilder = "<b>" + data + "</b><hr/><p>Description: <br/>" + full["longDescrioption"] + "</p>";
      return "<a href='#' class='Name'>" + (data.length > 50 ? data.substr(0, 50) + '…' : data) + "</a>" +
      "<sup data-toggle='tooltip' data-original-title=" + htmlBuilder + ">"+
      "<i class='ic-open-in-new ic' style='font-size:12px;margintop:-3px;'></i></sup>";
    }
 },

0 votes

Upvote pour la partie fnDrawCallback et c'est le seul endroit où l'initialisation d'une infobulle BS avec un formatage HTML fonctionne avec une table de données dont la pagination est activée.

0voto

Haider Abbas Points 29

Si vous utilisez les directives bootstrap pour AngularJS, utilisez l'attribut tooltip-append-to-body.

<td ng-repeat="column in row.columns" uib-tooltip="{{ ctrl.viewModel.leanings.tooltip }}" tooltip-append-to-body="true"></td>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X