Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Помогите исправить склонение (https://javascript.ru/forum/dom-window/31242-pomogite-ispravit-sklonenie.html)

fAmOus 31.08.2012 00:57

Помогите исправить склонение
 
Всем привет..

var rate = {
 getVotes: function () {
 $.post(phpurl,{a:'getrate',m:module,n:entryID}, function (res) {
 if(res.split('|')[0].length > 1) { $('#votes_plus').html(res.split('|')[0].toString());
 $('#votes_minus').html(res.split('|')[1].toString());
 $('#total_votes').html(parseInt($('#votes_plus').text().match(/\d+/))+parseInt($('#votes_minus').text().match(/\d+/)));
if(res.split('|')[2].length > 1) {
    var t = res.split('|')[2].toString();$('#mm').remove(); $('#like, #unlike').show();
	$('#'+t).before('<img src="http://qooga.ru/img/for/like/'+t+'_on_ac.png" id="mm" border="0" class="vote_img"/>').hide();
					
					function dec(b,c,d,a){b=[b,c,d];a%=100;a=11<=a&&14>=a?0:5>(a%=10)?2<a?2:a:0;return b[a]};
					var fingerUp = $('#votes_plus').html();
					var fingerDown = $('#votes_minus').html();
					var fUp = dec("пальцев", "палец", "пальца", fingerUp);
					var fDown = dec("пальцев", "палец", "пальца", fingerDown);
					$('#fingerUp').html(' '+fUp);
					$('#fingerDown').html(' '+fDown);
					
	}				    
 } else {$('#total_votes, #votes_plus, #votes_minus').html('0')} 
 })
 },
 vote: function (type) { 
 rate._ajax(phpurl, {a:'dorate',type:type,m:module,n:entryID})    
 setTimeout(function() {rate.getVotes()},500)
 },
 getList: function (vtype) {
 var u = vtype == 'like' ? 'положительно' : 'отрицательно';
 new _uWnd('list','Список оценивших '+u,300,140,{align:0,аutоsizе:1,close:0,modal:1,oncontent: function () {$.post(phpurl, {a:'getlist',m:module,n:entryID,type:vtype}, function (r) {if(r.length > 1) { $('#list_u').html(r);} else {$('#list_u').html('Пока никто не оценил...')} _uWnd.getbyname('list').checksize()})}},'<fieldset><legend>Пользователи:</legend><div id="list_u">Loading...</div></fieldset><fieldset><div align="right"><input type="button" style="padding:2px;" onclick="_uWnd.close(\'list\')" value="Закрыть"></div></fieldset>')
 },
 _ajax: function (url,params) {
 $.post(url, params, function (rs) { _uWnd.alert(rs,'',{w:300,h:40}); })
 }
 }


Проблема заключается в том что скрипт выводит склонение только ко второму элементу "fDown", а на fUp он выводит только первое слово "пальцев"..

Выгладит как-то так:
1 пальцев вверх
1 палец вниз

fAmOus 31.08.2012 01:28

Дзен-трансгуманист,
Ну и вместо "1 палец" мне выдаст "1 1"

В fingerUp и Down(#vote_plus и minus) цифры
В fUp и fDown склонение
Ну и в конце он выводит результат

fAmOus 31.08.2012 01:45

Дзен-трансгуманист,
Результат:
1 пальцев вверх
1 палец вниз

fAmOus 31.08.2012 01:47

Цитата:

Сообщение от Дзен-трансгуманист (Сообщение 201903)
Не факт.

Я же проверил :)

fAmOus 31.08.2012 02:06

Дзен-трансгуманист,
1 пальцев вверх
1 пальцев вниз

fAmOus 31.08.2012 02:07

Цитата:

var fUp = dec("пальцев", "палец", "пальца", fingerUp);
var fDown = dec("пальцев", "палец", "пальца", fingerUp);
Он все цифры берет из fingerUp а нужно из разных :)
Цитата:

Могу еще предположить, что элемента $('#fingerUp') не существует, а в реально существующем просто остается прежнее значение.
Всё есть :)
<b id="votes_plus">...</b><b id="fingerUp"></b>
<b id="votes_minus">...</b><b id="fingerDown"></b>

fAmOus 31.08.2012 02:20

Дзен-трансгуманист,
Проверил на Nightly(Firefox) всё прекрасно работает.. а на хроме ничего :(

fAmOus 31.08.2012 03:02

Дзен-трансгуманист,
Мне всего-то нужно сделать склоняемость :)
1 - палец
2 - пальца
5 - пальцев
Оно всё работает, но вот криво :)


Часовой пояс GMT +3, время: 02:56.