2016-05-23 2 views
0

Я нашел красивую галерею JavaScript here. Я пытался получить данные из библиотеки Sharepoint, используя SPServices. Но не получилось. Есть ли проблема с моим кодом?Галерея JavaScript для SPservices

<script type="text/javascript" src="/Jscript/Jquery/jquery-1.12.3.min.js"></script> 
 
<script type="text/javascript" src="/Jscript/SPServices/jquery.SPServices-2014.02.min.js"></script> 
 
<script type="text/javascript" src="/Script/js/fotorama.js"></script> 
 
<link rel="stylesheet" href="/Script/js/fotorama.css" /> 
 

 

 
<script language="javascript" type="text/javascript"> 
 

 
$(document).ready(function() { 
 
    $().SPServices({ 
 
    operation: "GetListItems", 
 
    async: false, 
 
    listName: "2007PhotoAlbum", 
 
    CAMLViewFields: "<ViewFields></ViewFields>", 
 
    completefunc: function (xData, Status) { 
 
     $(xData.responseXML).SPFilterNode("z:row").each(function() { 
 
\t 
 
\t \t 
 
     var liHtml = "<div class='fotorama'><img src='" + "/photos/2007PhotoAlbum/" + $(this).attr("ows_PicFilename") +"'" + "></div>"; 
 
     $("#fotorama").append(liHtml); 
 
     }); 
 
    } 
 
    }); 
 
}); 
 

 

 
</script> 
 
<div id="fotorama" data-width="700" data-ratio="700/467" data-max-width="100%"></div> 
 
<script> 
 
$('.fotorama').fotorama({ 
 
    width: 700, 
 
    maxwidth: '100%', 
 
    ratio: 16/9, 
 
    allowfullscreen: true, 
 
    nav: 'thumbs' 
 
}); 
 
</script>

ответ

0

В SPServices называют не может быть завершена до галереи код выполняется. Это делает его похожим на то, что SPServices не возвращает данные. Вы можете начать с проверки того, что SPServices возвращает данные. Этот код будет записывать вывод на страницу.

$().SPServices({ 
    operation: "GetListItems", 
    async: false, 
    listName: "2007PhotoAlbum", 
    CAMLViewFields: "<ViewFields></ViewFields>", 
    completefunc: function(xData, Status) { 
     /***********************************Debugging*******************************/ 
      var out = $().SPServices.SPDebugXMLHttpResult({ 
      node: xData.responseXML 
      }); 
      $("#debug").html("").append("<b>This is the output from the GetList operation:</b>" + out); 
     /***************************************************************************/ 

     $(xData.responseXML).SPFilterNode("z:row").each(function() { 


     var liHtml = "<div class='fotorama'><img src='" + "/photos/2007PhotoAlbum/" + $(this).attr("ows_PicFilename") +"'" + "></div>"; 
     $("#fotorama").append(liHtml); 
     }); 
    } 
    }); 

Пока это возвращает данные, я рекомендую переписать вызов SPServices с помощью обещаний. Затем запустите .fotorama после того, как обещание будет возвращено. Марк сравнивает и без обещаний here.

Смежные вопросы