2016-11-17 8 views
0

Ich habe bootstrap popover mit einigen benutzerdefinierten jquery verwendet. Popover-Funktion funktioniert gut, aber wenn ich eine Schaltfläche mit einem externen Link hinzufügen, funktioniert es nicht. Siehe den Code: gibt es zwei Tasten "Button1" für Popover & "Button2" für externe Verbindung.Bootstrap: Popover Button Link funktioniert nicht

$(document).ready(function() { 
 
    $("body").tooltip({ 
 
    selector: "[data-toggle='tooltip']", 
 
    container: "body" 
 
    }) 
 
    .popover({ 
 
    selector: "[data-toggle='popover']", 
 
    container: "body", 
 
    html: true 
 
    }); 
 
}); 
 

 
$('body').on('click', function (e) { 
 
    $('[data-toggle="popover"]').each(function() { 
 
    if(!$(this).is(e.target) && 
 
     $(this).has(e.target).length === 0 && 
 
     $('.popover').has(e.target).length === 0) { 
 
     $(this).popover('hide'); 
 
    } 
 
    }); 
 
});
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
 
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> 
 

 
<div class="container" style="width:400px; height:400px; background:#000;padding-top:50px;"> 
 
    <a data-placement="top" role="button" class="btn btn-danger" data-toggle="popover" data-content="Popover" data-original-title="" title=""> 
 
    Button1 
 
    </a> 
 
    
 
    <a class="btn btn-danger" href="http://facebook.com" target="_blank">Button2</a> 
 
</div>

+0

Haben Sie popover angezeigt werden soll, wenn Sie Benutzer über sie mit ihrer Maus geht oder nach der Link angeklickt wird? Weil ich die letzte Möglichkeit hatte zu arbeiten. –

+0

Es funktioniert gut wie erwartet. Ich checkte in meinem Lokal ein. – Samir

+0

Sie müssen zu der anderen URL auf der 2. Schaltfläche klicken? oder möchten Sie das gleiche Popup über die 2. Schaltfläche öffnen? wie 1. Knopf? – Samir

Antwort

1

Sie fehlen einige data-toggle, data-placement Syntax der in der zweiten Taste! Wenn Sie diese hinzufügen, erhält die zweite Schaltfläche dieselbe Funktion wie die erste Schaltfläche. Ich habe dies zu Ihrem Code hinzugefügt:

<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> 
<script type="text/javascript"> $(document).ready(function() { 
     $("body").tooltip({ 
      selector: "[data-toggle='tooltip']", 
      container: "body" 
     }) 
       .popover({ 
        selector: "[data-toggle='popover']", 
        container: "body", 
        html: true 
       }); 
    }); 

    $('body').on('click', function (e) { 
     $('[data-toggle="popover"]').each(function() { 
      if(!$(this).is(e.target) && 
        $(this).has(e.target).length === 0 && 
        $('.popover').has(e.target).length === 0) { 
       $(this).popover('hide'); 
      } 
     }); 
    });</script> 

<div class="container" style="width:400px; height:400px; background:#000;padding-top:50px;"> 
    <a data-placement="top" role="button" class="btn btn-danger" data-toggle="popover" data-content="Popover" data-original-title="" title=""> 
     Button1 
    </a> 

    <a class="btn btn-danger" href="http://facebook.com" data-placement="top" data-toggle="popover" data-content="Popover" data-original-title="" title="" target="_blank">Button2</a> 
</div> 
+0

Fein, aber es funktioniert nicht in iPhone-Browser – Vishnu

+0

Ändern Sie die Klasse in 'class =" btn "' –

+0

für welche Schaltfläche? – Vishnu

1

Die Stapelüberlaufskripte blockieren Ihre Verbindung vom Öffnen einer neuen Seite/Umleitung. Versuchen Sie, diese codepen mit Ihrem Code: http://codepen.io/TunderScripts/pen/oYYbgW

<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> 

<div class="container" style="width:400px; height:400px; background:#000;padding-top:50px;"> 
    <a data-placement="top" role="button" class="btn btn-danger" data-toggle="popover" data-content="Popover" data-original-title="" title=""> 
    Button1 
    </a> 

    <a class="btn btn-danger" href="http://facebook.com" target="_blank">Button2</a> 
</div> 


$(document).ready(function() { 
    $("body").tooltip({ 
    selector: "[data-toggle='tooltip']", 
    container: "body" 
    }) 
    .popover({ 
    selector: "[data-toggle='popover']", 
    container: "body", 
    html: true 
    }); 
}); 

$('body').on('click', function (e) { 
    $('[data-toggle="popover"]').each(function() { 
    if(!$(this).is(e.target) && 
     $(this).has(e.target).length === 0 && 
     $('.popover').has(e.target).length === 0) { 
     $(this).popover('hide'); 
    } 
    }); 
}); 
+0

gibt es ein Problem ... es funktioniert nicht in iphone Browser .. – Vishnu

+0

der Tooltip oder der einfache Link? –

+0

Tooltip. Es ist nicht "entlassen" wenn wir irgendwo auf den Körper tippen (nur im iphone Browser) – Vishnu

Verwandte Themen