В этой статье я расскажу, как можно добавить Callout (popover от
MS).
Я не буду в даваться в детали,
т.к. примеров в инете достаточно, а покажу как можно сделать универсальное
решение.
Рассмотрим ситуацию, когда нам нужно инициализировать
много callout. Ну не будем же мы прописывать в js все варианты, и поэтому
я решил пойти по пути как у Bootstrap и добавить необходимые для callout данные в атрибуты html элементов.
calloutTitle=""
calloutContent=""
В решении я использовал стандартный mQuery.
Скрипт пробегает по всем элементам с классом .myCallout и инициализирует Callout
Скрипт пробегает по всем элементам с классом .myCallout и инициализирует Callout
SP.SOD.executeFunc('mQuery.js', 'm$', addMyCallout);
function addMyCallout() {
m$(".myCallout").forEach(function( el,index){
if(!el.id){
el.id = "myCallout_"+ guid();
}
var self = m$(el);
var title = self.attr("calloutTitle");
var content = self.attr("calloutContent");
if(title || content){
SP.SOD.executeFunc("callout.js", "Callout", function()
{
var itemCallOut = CalloutManager.createNew(
{
ID: el.id,
launchPoint: el,
beakOrientation: 'leftRight',
title: title,
content: content,
openOptions:{event: "hover"},
});
});
};
});
function guid() {
function s4() {
return Math.floor((1 + Math.random()) * 0x10000)
.toString(16)
.substring(1);
};
return s4() + s4() + '-' + s4() + '-' + s4() + '-' + s4() + '-' + s4() + s4() + s4();
};
};
Данный скрипт можно сохранить в js файл и положить в библиотеку. И добавлять ссылку на требуемые страницы.
скачать файл myCallout.js
скачать файл myCallout.js


Комментариев нет:
Отправить комментарий