這是一個問題,我以前問的延續:jQuery Validate, Select2, and Bootstrap 3 Popovers - How to Bind Popover To Select2's Parent Elements Instead of Hidden Select Element使用引導3個Popovers隨着CKEditor的4和jQuery驗證
雖然與選擇二的問題得到解決,與CKEditor的問題從來沒有,雖然當時我採取了替代解決方案,我寧願使用popovers,因爲它們在觸發時不會改變文檔佈局。
這是我目前問題的小提琴:http://jsfiddle.net/jemxtthb/13/
我知道它有選擇的if語句的鏈接做的事情 - 我把一些控制檯輸出,以確保其觸發對的酥料餅CKEditor的元素:
if (element.is(':hidden')) {
$(element).siblings().next().popover('show').parents('.form-group').addClass('has-error').removeClass('has-success');
console.log('hidden element');
} else {
$(element).popover("show").parents(".form-group").addClass('has-error').removeClass('has-success');
console.log('normal element');
}
您可以在該酥料餅被觸發Chrome的開發者工具的元素標籤看,但它結束了在視口左上角之中。我怎樣才能將它附加到CKEditor DIV上,或者至少圍繞它,像圍繞它的form-group
DIV?
奇怪的是,Select2替換元素的位置沒有問題;我懷疑這與他們使用aria-hidden
的事實有關,而不是CKEditor的display: none visibility: hidden
方法。
任何幫助/建議表示讚賞,並希望將有利於其他人可能會遇到類似的問題掙扎。
啊,@Sparky - 再次感謝 - 你真的知道周圍的jQuery自己的方式驗證!我只是修改了Fiddle來將popover設置封裝到一個變量中,以使if/else語句更加高效和易於閱讀,並在「成功」函數中添加了if/else,這樣就可以取消popover你的例子不清除它們:http://jsfiddle.net/c6n30n0L/1/再次感謝解決方案和徹底的解釋! – Joyrex
@Joyrex,爲了實現更清晰的實現:如果BootStrap Popover爲您提供了一種動態更新'content'的方法,那麼我建議初始化'.validate()'的'.popover()'*之外,並且只使用'errorPlacement '改變它的內容。像我的ToolTipster集成:http://stackoverflow.com/a/14741689/594235 – Sparky