私はmvcプロジェクトでブートストラップを使用しています。私はブートストラップポップオーバーウィジェットに関する問題があります。私は可変テキストメッセージとし、可変サイズで任意の要素のポップオーバーを初期化したいTwitterのブートストラップポップオーバーのサイズを変更するには?
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());
:私はここで、コードをポップオーバーウィジェット用のカスタムバインディングノックアウトを作成しました。すべてのことが大丈夫だけど、最初の時よりもポップオーバーのデフォルトの幅を変更したときに、その位置が正しくないときは(フィドルの動作を確認してください)。
この問題よりもコメントを外してしまえば、フィドルにはいくつかのコード行があります。しかし、私はそれがハッキーなアプローチだと思っています、私はいくつかのより良い方法があればそれを処理したいですか?
私はそれを行いましたが、初期化する前にpopover divは存在しませんので、変更は効果がありません。 – user1740381
デモを提供しようとしていますが、あなたの幅の調整に基づいているか分かりません。それは恣意的と思われる。 CSSで幅を設定するだけではどうですか? – isherwood