Верстка комментариев

переделал немного верстку рейтинга комментариев, все вроде нормально, но при глоосовании не изменяется значение рейтинга… т.е. был ноль, нажал +, ноль стал зеленым))) и все.

После F5 конечно значение отображается.

вот что я сделал:

{if $oComment->getTargetType()!='talk'}	
<div class="voting {if $oComment->getRating()>0}positive{elseif $oComment->getRating()<0}negative{/if} {if !$oUserCurrent || $oComment->getUserId()==$oUserCurrent->getId() ||  strtotime($oComment->getDate())<$smarty.now-$oConfig->GetValue('acl.vote.comment.limit_time')}guest{/if}   {if $oVote} voted {if $oVote->getDirection()>0}plus{else}minus{/if}{/if}  ">
						
<table>
	<tr>
		<td class="total" width="20px" align="right">
			<div class="total">{if $oComment->getRating()>0}+{/if}{$oComment->getRating()}</div>
		</td>
		<td>
		    <ul>
			<li><a href="#" class="minus" onclick="lsVote.vote({$oComment->getId()},this,-1,'comment'); return false;"></a></li>
			<li><a href="#" class="plus" onclick="lsVote.vote({$oComment->getId()},this,1,'comment'); return false;"></a></li>
		   </ul>
		</td>
	</tr>
</table>
</div>	
{/if}


Не может это быть связано с тем, что total находится в табличке?

2 комментария

avatar
а в js-код заглядывать не пробывали? думаю, там вы найдёте ответ на свой вопрос.
вот какой код у стрелки голосования
<a onclick="lsVote.vote(4391,this,1,'topic'); return false;" href="#"></a>

находим vote.js
и смотрим функцию vote
vote: function(idTarget,objVote,value,type) { 

по результату ajax-а она вызывает
thisObj.onVote(result, errors, thisObj);

в которой уже и проиходит всё действо
var divVoting=thisObj.objVote.getParent('.'+thisObj.options.classes_element.voting); 

вот как устанавливается результат
var divTotal=divVoting.getChildren('.'+thisObj.options.classes_element.total);
 result.iRating=parseFloat(result.iRating); 
...
divTotal.set('text','+'+result.iRating);

т.о. сначала получается родительский элемент, а потом в нём получается дочерний элемент с классом total.

а вот теперь уже можно задать вопрос — разве сложно открыть FireBug и посмотреть как это работает?
avatar
есть для меня сложные моменты, которых я не понимаю, поэтому и спрашиваю. спасибо.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.