I have a list of items, and each one has a Bootstrap popover associated with it (docs here). They are initiated like this:
$('#my_list li').popover({
placement: 'left'
});
This works, but at small widths the popover is lost from the viewport. I'd like to make the placement conditional based on $(document).width();
, however I can't see a way to over-ride the initial options (e.g. at at width of around 1000px, switch the placement to 'above').
I've put together a simplified version at jsfiddle here. Many thanks.
I have a list of items, and each one has a Bootstrap popover associated with it (docs here). They are initiated like this:
$('#my_list li').popover({
placement: 'left'
});
This works, but at small widths the popover is lost from the viewport. I'd like to make the placement conditional based on $(document).width();
, however I can't see a way to over-ride the initial options (e.g. at at width of around 1000px, switch the placement to 'above').
I've put together a simplified version at jsfiddle here. Many thanks.
Share Improve this question edited Nov 18, 2011 at 14:44 CherryFlavourPez asked Nov 17, 2011 at 11:08 CherryFlavourPezCherryFlavourPez 7,4976 gold badges47 silver badges48 bronze badges2 Answers
Reset to default 20placement can also take a function as its value. In this function you can return the appropriate value based on width of viewport. For eg.
$(document).ready(function(){
$('#my_list li').popover({
placement: wheretoplace
});
});
function wheretoplace(){
var width = window.innerWidth;
if (width<500) return 'bottom';
return 'left';
}
Its change placement from left to top on window smaller than 768
placement: function(){return $(window).width()>768 ? "auto left":"auto top";}