Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.07.2013, 17:37
Интересующийся
Отправить личное сообщение для goodsik Посмотреть профиль Найти все сообщения от goodsik
 
Регистрация: 15.07.2013
Сообщений: 16

Дублироваие блоков
Такая проблема: прикрутил к галерее slimbox комментарии и лайк от вконтакте. При просмотре первого фото всё отображается как надо, однако при просмотре следующих кнопка лайков и комментарии дублируются, троятся и т.д. Одним словом, сколько раз просмотрны фото, столько и этих блоков. Вот ссылка на проблему http://leshka.by/ , блок "случайные фото".


Как это исправить?

Вот как вставлен блок комментариев. Точно так же вставлен блок лайков.

Z=new Element("div#vk_comments"),
...
Z.set("open",
"script type#text/javascript",
VK.Widgets.Comments("vk_comments", {limit: 10, attach: "*"}));

Последний раз редактировалось goodsik, 15.07.2013 в 17:47.
Ответить с цитированием
  #2 (permalink)  
Старый 16.07.2013, 08:39
Аватар для ОлегА
Профессор
Отправить личное сообщение для ОлегА Посмотреть профиль Найти все сообщения от ОлегА
 
Регистрация: 25.08.2011
Сообщений: 420

у вас при смене фотографии похоже, повторно вызывается функция вставки этого блока с комментами, либо чистите блок перед перелистыванием фото, либо уберите повторный вызов скрипта со вставкой комментов и лайков.
Ответить с цитированием
  #3 (permalink)  
Старый 17.07.2013, 22:04
Интересующийся
Отправить личное сообщение для goodsik Посмотреть профиль Найти все сообщения от goodsik
 
Регистрация: 15.07.2013
Сообщений: 16

Сообщение от ОлегА Посмотреть сообщение
у вас при смене фотографии похоже, повторно вызывается функция вставки этого блока с комментами, либо чистите блок перед перелистыванием фото
Если вас не затруднит, можете примерно написать код, которым это можно сделать?
Ответить с цитированием
  #4 (permalink)  
Старый 17.07.2013, 22:37
Аватар для ОлегА
Профессор
Отправить личное сообщение для ОлегА Посмотреть профиль Найти все сообщения от ОлегА
 
Регистрация: 25.08.2011
Сообщений: 420

скиньте лучше ссылку на сайт
Ответить с цитированием
  #5 (permalink)  
Старый 17.07.2013, 22:40
Интересующийся
Отправить личное сообщение для goodsik Посмотреть профиль Найти все сообщения от goodsik
 
Регистрация: 15.07.2013
Сообщений: 16

Сообщение от ОлегА Посмотреть сообщение
скиньте лучше ссылку на сайт
http://leshka.by/ , блок "случайные фото".
Ответить с цитированием
  #6 (permalink)  
Старый 17.07.2013, 23:05
Аватар для ОлегА
Профессор
Отправить личное сообщение для ОлегА Посмотреть профиль Найти все сообщения от ОлегА
 
Регистрация: 25.08.2011
Сообщений: 420

покажите скрипт переключения фото
Ответить с цитированием
  #7 (permalink)  
Старый 18.07.2013, 15:25
Интересующийся
Отправить личное сообщение для goodsik Посмотреть профиль Найти все сообщения от goodsik
 
Регистрация: 15.07.2013
Сообщений: 16

Сообщение от ОлегА Посмотреть сообщение
покажите скрипт переключения фото
Дабы не засорять тему, файлы скрипта оставил здесь
файлы SLIMBOX
Собственно в Slimbox.js вставлены блоки комментариев и лайков, однако этот файл имеет сжатый вид кода.
В slimbox-uncompressed.js код структурирован, но эти блоки не вставлял (т.к. для функционирования этот файл не нужен).
Ответить с цитированием
  #8 (permalink)  
Старый 18.07.2013, 15:31
Аватар для ОлегА
Профессор
Отправить личное сообщение для ОлегА Посмотреть профиль Найти все сообщения от ОлегА
 
Регистрация: 25.08.2011
Сообщений: 420

у меня нет доступа на левые сайты
Ответить с цитированием
  #9 (permalink)  
Старый 18.07.2013, 15:40
Интересующийся
Отправить личное сообщение для goodsik Посмотреть профиль Найти все сообщения от goodsik
 
Регистрация: 15.07.2013
Сообщений: 16

Сообщение от ОлегА Посмотреть сообщение
у меня нет доступа на левые сайты
var Slimbox=(function(){var L=window,s=Browser.ie6,z,g,M=-1,t,C,K,A,E,T,x,r={},y=new Image(),R=new Image(),O,a,h,v,P,e,N,c,G,S,XZ,XI,D,j,d,I;L.addEvent("domready",function(){$(document.body).adopt($$(O=new Element("div#lbOverlay",{events:{click:J}}),a=new Element("div#lbCenter"),N=new Element("div#lbBottomContainer")).setStyle("display","none"));h=new Element("div#lbImage").inject(a).adopt(v=new Element("div",{styles:{position:"relative"}}).adopt(P=new Element("a#lbPrevLink[href=#]",{events:{click:H}}),e=new Element("a#lbNextLink[href=#]",{events:{click:f}})));c=new Element("div#lbBottom").inject(N).adopt(new Element("a#lbCloseLink[href=#]",{events:{click:J}}),G=new Element("div#lbCaption"),S=new Element("div#lbNumber"), XI=new Element("div#vk_like"),XZ=new Element("div#vk_comments"),new Element("div",{styles:{clear:"both"}}))});function F(){var U=L.getScroll(),V=L.getSize();$$(a,N).setStyle("left",U.x+(V.x/2));if(A){O.setStyles({left:U.x,top:U.y,width:V.x,height:V.y})}}function n(U){["object",s?"select":"embed"].forEach(function(W){Array.forEach(document.getElementsByTagName(W),function(X){if(U){X._slimbox=X.style.visibility}X.style.visibility=U?"hidden":X._slimbox})});O.style.display=U?"":"none";var V=U?"addEvent":"removeEvent";L[V]("scroll",F)[V]("resize",F);document[V]("keydown",u)}function u(V){var U=V.code;return z.closeKeys.contains(U)?J():z.nextKeys.contains(U)?f():z.previousKeys.contains(U)?H():false}function H(){return b(C)}function f(){return b(K)}function b(U){if(U>=0){M=U;t=g[U][0];C=(M||(z.loop?g.length:0))-1;K=((M+1)%g.length)||(z.loop?0:-1);w();a.className="lbLoading";r=new Image();r.onload=l;r.src=t}return false}function B(U){o={};ilength=U.length;for(i=0;i<ilength;i++){o[U[i]["0"]]=i}p=new Array();for(i in o){p[o[i]]=true}return p}function Q(U){arrlength=U.length;uniquelength=arrlength;for(i=0;i<arrlength;i++){if(!U[i]){uniquelength--}}return uniquelength}function m(V,U){maxid=0;for(i=0;i<=U;i++){if(V[i]){maxid=Math.max(maxid,i)}}return maxid}function q(W,V,U){actcount=0;for(i=0;i<=V;i++){if(W[i]){actcount++;if(i==U){break}}}return actcount}function l(){a.className="";d.set(0);if(resizeJsImage==1){if(r.width>(z.winWidth*0.99)){r.height=(r.height*(z.winWidth*0.99))/r.width;r.width=z.winWidth*0.99}if(r.height>(z.winHeight*0.88)){r.width=(r.width*(z.winHeight*0.88))/r.height;r.height=z.winHeight*0.88}imgelem=h.getElementById("sbimg");if(!imgelem){imgelem=new Element("img",{id:"sbimg"});imgelem.inject(h)}imgelem.setProperty("src",g[M][0]);imgelem.setProperty("width",r.width);imgelem.setProperty("height",r.height)}else{h.style.backgroundImage="url("+g[M][0]+")"}h.setStyles({width:r.width,display:""});v.setStyle("width",r.width);h.setStyle("height",r.height);$$(P,e).setStyle("height",r.height);G.set("html",g[M][1]||"");



XZ.set("open",
"script type#text/javascript",
VK.Widgets.Comments("vk_comments", {limit: 10, attach: "*"}));



XI.set("open",
"script type#text/javascript",
VK.Widgets.Like("vk_like", {type: "full"}));

uniquearr=new Array();uniquearr=B(g);uniquecount=Q(uniquearr);uniquemaxid=m(uniquearr,g.length);changed=false;while(!uniquearr[M]){M++;changed=true;K++}while(!uniquearr[C]&&C>=0){C--}if(changed){while(!uniquearr[K]&&K<=uniquemaxid){K++}if(K>uniquemaxid){K=-1}}if(C<0){imageactcounter=1}else{imageactcounter=q(uniquearr,g.length,M)}S.set("html",(z.showCounter&&(g.length>1))?z.counterText.replace(/{x}/,imageactcounter).replace(/{y}/,uniquecount):"");if(C>=0){y.src=g[C][0]}if(K>=0){R.src=g[K][0]}T=h.offsetWidth;x=h.offsetHeight;var W=Math.max(0,E-(x/2)),U=0,V;if(a.offsetHeight!=x){U=j.start({height:x,top:W})}if(a.offesetWidth!=T){U=j.start({width:T,marginLeft:-T/2})}V=function(){N.setStyles({width:T,top:W+x,marginLeft:-T/2,visibility:"hidden",display:""});d.start(1)};if(U){j.chain(V)}else{V()}}function k(){if(C>=0){P.style.display=""}if(K>=0){e.style.display=""}I.set(-c.offsetHeight).start(0);N.style.visibility=""}function w(){r.onload=null;r.src=y.src=R.src=t;j.cancel();d.cancel();I.cancel();$$(P,e,h,N).setStyle("display","none")}function J(){if(M>=0){w();M=C=K=-1;a.style.display="none";D.cancel().chain(n).start(0)}return false}Element.implement({slimbox:function(U,V){$$(this).slimbox(U,V);return this}});Elements.implement({slimbox:function(U,X,W){X=X||function(Y){return[Y.href,Y.title]};W=W||function(){return true};var V=this;V.removeEvents("click").addEvent("click",function(){var Y=V.filter(W,this);return Slimbox.open(Y.map(X),Y.indexOf(this),U)});return V}});return{open:function(W,V,U){resizeduration=(11-resizeSpeed)*150;z=Object.append({loop:false,overlayOpacity:0.8,overlayFadeDuration:400,resizeDuration:resizeduration,resizeTransition:false,initialWidth:250,initialHeight:250,imageFadeDuration:400,captionAnimationDuration:400,counterText:joomgallery_image+" {x} "+joomgallery_of+"  {y}",closeKeys:[27,88,67],previousKeys:[37,80],nextKeys:[39,78],winWidth:(getWidth()>0)?getWidth():1024,winHeight:(getHeight()>0)?getHeight():800,showCounter:true},U||{});D=new Fx.Tween(O,{property:"opacity",duration:z.overlayFadeDuration});j=new Fx.Morph(a,Object.append({duration:z.resizeDuration,link:"chain"},z.resizeTransition?{transition:z.resizeTransition}:{}));d=new Fx.Tween(h,{property:"opacity",duration:z.imageFadeDuration,onComplete:k});I=new Fx.Tween(c,{property:"margin-top",duration:z.captionAnimationDuration});if(typeof W=="string"){W=[[W,V]];V=0}E=L.getScrollTop()+(L.getHeight()/2);T=z.initialWidth;x=z.initialHeight;a.setStyles({top:Math.max(0,E-(x/2)),width:T,height:x,marginLeft:-T/2,display:""});A=s||(O.currentStyle&&(O.currentStyle.position!="fixed"));if(A){O.style.position="absolute"}D.set(0).start(z.overlayOpacity);F();n(1);g=W;z.loop=z.loop&&(g.length>1);return b(V)}}})();Slimbox.scanPage=function(){$$("a").filter(function(a){return a.rel&&a.rel.test(/^lightbox/i)}).slimbox({},null,function(a){return(this==a)||((this.rel.length>8)&&(this.rel==a.rel))})};if(!/android|iphone|ipod|series60|symbian|windows ce|blackberry/i.test(navigator.userAgent)){window.addEvent("domready",Slimbox.scanPage)};
Ответить с цитированием
  #10 (permalink)  
Старый 18.07.2013, 15:53
Аватар для ОлегА
Профессор
Отправить личное сообщение для ОлегА Посмотреть профиль Найти все сообщения от ОлегА
 
Регистрация: 25.08.2011
Сообщений: 420

что за переключение фото тоже этот код отвечает?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка блоков по параметрам webmanss Элементы интерфейса 17 18.06.2016 20:04
Переключение блоков. lon Элементы интерфейса 7 03.07.2013 09:08
смена блоков! DavidDavid Общие вопросы Javascript 10 23.02.2013 08:45
Печать невидимых блоков mixeeff Events/DOM/Window 7 11.03.2009 11:41