Search code examples
javascriptjquerytooltipinternet-explorer-11

Unable to show multiple tooltips upon click in IE 11


please help to resolve the following issue. I am trying to display multiple tooltips on button click and hide them on second button click. For some reason I cannot do it in IE 11. In the example that i provide I can perfectly display them on page load by default. Once I try to do it on click (code commented out) nothing happens.

<!DOCTYPE html>
<html lang="en">
<head>
    <title>Bootstrap Example</title>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
</head>
<body>
    <div class="container">
        <h3>Demo</h3>
        <a href="#" data-toggle="tooltip" title="Tooltip is visible!">Tooltip will be visible here</a>

        <a href="#" data-toggle="tooltip" title="Tooltip is visible!">Tooltip will be visible here</a>
        <div>
            <button type="button" class="btn btn-primary">Show Tooltip</button>
            <button type="button" class="btn btn-default">Hide Tooltip</button>
        </div>
    </div>
    <script>
        //works fine  I can see tooltips by default
        $("[data-toggle='tooltip']").tooltip();
        $("[data-toggle='tooltip']").tooltip('show');

        $(document).ready(function () {
 
    $(".btn-primary").click(function () {
       //  doesn't work for some reson
      //  $("[data-toggle='tooltip']").tooltip();
       // $("[data-toggle='tooltip']").tooltip('show');
    });
    $(".btn-default").click(function(){
        $("[data-toggle='tooltip']").tooltip();
        $("[data-toggle='tooltip']").tooltip('hide');
    });
        });

      
           
        
    </script>
</body>
</html>

Solution

  • <!DOCTYPE html>
    <html lang="en">
    <head>
        <title>Bootstrap Example</title>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
        <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
    </head>
    <body>
        <div class="container">
            <h3>Demo</h3>
            <a href="#" data-toggle="tooltip" title="Tooltip is visible!">Tooltip will be visible here</a>
    
            <a href="#" data-toggle="tooltip" title="Tooltip is visible!">Tooltip will be visible here</a>
            <div>
                <button type="button" class="btn btn-primary">Show Tooltip</button>
                <button type="button" class="btn btn-default">Hide Tooltip</button>
            </div>
        </div>
        <script>
            //make sure to comment this lines
            //works fine  I can see tooltips by default
          //  $("[data-toggle='tooltip']").tooltip();
           // $("[data-toggle='tooltip']").tooltip('show');
    
            $(document).ready(function () {
     
        $(".btn-primary").click(function () {
            // works fine on IE11
            $("[data-toggle='tooltip']").tooltip();
            $("[data-toggle='tooltip']").tooltip('show');
        });
        $(".btn-default").click(function(){
            $("[data-toggle='tooltip']").tooltip();
            $("[data-toggle='tooltip']").tooltip('hide');
        });
        });
    
          
               
            
        </script>
    </body>
    </html>