Używam bootstrap w moim projekcie mvc. Mam problem z widgetem popover bootstrap. Stworzyłem niestandardowe wiążącej dla widget popover, tutaj kod nokaut:Jak zmienić rozmiar poppera na twitter bootstrap?
ko.bindingHandlers.popover = {
init: function (element, valuesAccessor, allBindingsAccessor, viewModel, bindingContext) {
var options = ko.utils.unwrapObservable(valuesAccessor() || {});
options.html = true;
options.content = '<small class="text-info">' + 'Variable text goes here.Variable text goes here.Variable text goes here.Variable text goes here.Variable text goes here. ' + '</small>';
$(element).popover(options);
},
update: function (element, valuesAccessor, allBindingsAccessor, viewModel, bindingContext) {
var extraOptions = allBindingsAccessor().popoverOptions;
$(element).popover(extraOptions.observable() ? "show" : "hide");
$(element).siblings('.popover').css({ width: '150px' });
//IF YOU UN-COMMENT BELOW 2 LINES THAN EVERY THINGS WORKS FINE
//if(extraOptions.observable())
//$(element).popover('show');
}
};
function vm() {
var self = this;
self.isVisible = ko.observable(false);
self.open = function() {
self.isVisible(!self.isVisible());
};
}
ko.applyBindings(new vm());
chcę zainicjować popover na dowolny element o zmiennej wiadomości tekstowej oraz o zmiennej wielkości. Wszystko idzie dobrze, ale kiedy zmieniam domyślną szerokość popover niż za pierwszym razem, kiedy otwiera się jego pozycja jest nieprawidłowa (proszę sprawdzić zachowanie w skrzypcach).
W skrzypcach było trochę wierszy kodu, które usuniesz, jeśli rozwiążesz ten problem. Ale czuję, że jest to podejście hacky, chcę lepszy sposób obsługi, jeśli istnieje?
Zrobiłem to, ale div popover nie jest obecny przed inicjalizacją, więc zmiany nie przynoszą skutku – user1740381
Próbuję zaoferować demo, ale nie jestem pewien, na czym opierasz regulację szerokości. Wydaje się to arbitralne. Dlaczego nie ustawić szerokości za pomocą CSS? – isherwood