2016-11-17 13 views
0

カスタマイズされたjqueryでブートストラップポップオーバーを使用しました。 Popover関数は正常に動作していますが、外部リンクのあるボタンを追加した場合はが動作しません。コードを参照してください:外部リンクのための2つのボタン "Button1" & "Button2"があります。ブートストラップ:ポップオーバーボタンのリンクが機能しない

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

あなたユーザーがマウスを使ってリンクをクリックした後、それを乗り越えるときに表示されるようにポップオーバーしますか?私には最後の選択肢があるので。 –

+0

期待通りにうまくいきます。私は自分の地元で調べた。 – Samir

+0

2番目のボタンをクリックすると別のURLに移動する必要がありますか?または2番目のボタンの上に同じポップアップを開いてもよろしいですか?最初のボタンのように? – Samir

答えて

1

あなたは番目のボタンにはいくつかのdata-toggledata-placement構文のを逃しています!これらを追加すると、2番目のボタンには最初のボタンと同じ機能が与えられます。私はこれをあなたのコードに追加しました:

<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

iPhoneのブラウザでうまく動作しません。 – Vishnu

+0

クラスを 'class =" btn "' –

+0

に変更しますか? – Vishnu

1

スタックオーバーフロースクリプトによってリンクが新しいページ/リダイレクトを開けないようブロックされています。あなたのコードでこれを試してみてくださいcodepen: 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

1つの問題があります...それはiPhoneのブラウザでは機能しません。 – Vishnu

+0

ツールチップまたはシンプルなリンク? –

+0

ツールチップ。私たちが身体のどこかをタップすると(iPhoneのブラウザでのみ) – Vishnu

関連する問題