2016-04-11 48 views
0

我目前使用引導彈出來添加一些額外的字段到我的表單。要格式化我的選擇框,我需要利用popover回調,但是我似乎無法讓回調觸發。如果你更喜歡使用jsfiddle,check it out here.感謝您的任何建議。使用引導彈出回調

$("[data-toggle=popover]").popover({ 
 
    html: true, 
 
    content: function() { 
 
    return $('#popover-content').html(); 
 
    }, 
 
    showCallback: function() { 
 
    alert('called back'); 
 
    } 
 
});
.container { 
 
    padding: 20px; 
 
} 
 
.form-control { 
 
    width: 120px; 
 
} 
 
.popover { 
 
    max-width: 400px; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="https://netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js"></script> 
 
<link href="https://netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css" rel="stylesheet" /> 
 
<div class="container"> 
 
    <h3>Bootstrap 3 Popover HTML Example</h3> 
 
    <ul class="list-unstyled"> 
 
    <li><a data-placement="bottom" data-toggle="popover" data-container="body" data-placement="left" type="button" data-html="true" href="#" id="login"><span class="glyphicon glyphicon-search" style="margin:3px 0 0 0"></span></a> 
 
    </li> 
 
    <div id="popover-content" class="hide"> 
 
     <form class="form-inline" role="form"> 
 
     <div class="form-group"> 
 
      <h1>My content</h1> 
 
     </div> 
 
     </form> 
 
    </div> 
 
    </ul> 
 
</div>

+0

當你想調用這個回調函數嗎?彈出窗口顯示後立即顯示 – itzmukeshy7

+0

@ itzmukeshy7。 – neanderslob

+0

意思是你想調用回調,因爲該項目被點擊右鍵,那麼你爲什麼不將一個點擊事件綁定到元素而不是回調?回調是必要的嗎? – itzmukeshy7

回答

1

沒有酥料餅的選項showCallback,而不是嘗試使用內置popover events

因此,例如白手起家觸發警報的一個當酥料餅的顯示,你會做這個

$("[data-toggle=popover]").on('shown.bs.popover', function() { 
    alert('called back'); 
}); 

我更新了你的JS Fiddle一個例子...

2

試試這個:我已經添加了一個回調函數,使用jQuery的prototype

var tmp = $.fn.popover.Constructor.prototype.show; 
$.fn.popover.Constructor.prototype.show = function() { 
    tmp.call(this); 
    if (this.options.callback) { 
    this.options.callback(); 
    } 
} 

this.$("[data-toggle=popover]").popover({ 
    html: true, 
    content: function() { 
    return $('#popover-content').html(); 
    }, 
    callback: function() { 
    alert('called back'); 
    } 
}); 

已更新您的fiddle