Вход Регистрация
Файл: Arhmobi_esdcms/sys/themes/default_mobile/res/listing.js
Строк: 55
<?php
/**
 * Created by DES on 11.11.2015.
 */
(function () {
    
"use strict";

    var 
ajax_timeout = 7000;

    
// при нажатии на ссылку добавляем к ней класс pressed
    
$(document).on('touchstart touchend touchleave touchmove mouseleave', 'a', function (event) {
        var 
$tg = $(event.currentTarget);
        switch (
event.type) {
            case 
'touchstart':
                if (
$tg.data('pressed')) {
                    return;
                }
                
$tg.data('pressed', true);
                
$tg.toggleClass('invert');
                break;
            case 
'touchend':
            case 
'touchleave':
            case 
'touchmove':
            case 
'mouseleave':
                if (!
$tg.data('pressed')) {
                    return;
                }
                
$tg.data('pressed', false);
                
$tg.toggleClass('pressed');
                break;
        }
        
event.stopPropagation();
    });

    $(function(){
        $(
".listing").each(function () {
            var 
$element = $(this);
            var 
id_form = $element.attr('data-form-id');
            var 
url = $element.attr('data-ajax-url');
            if (!
url) {
                return;
            }
            var 
timeout;

            $(
document).on('form_submit', function (event, id_form_arg) {
                if (
id_form_arg === id_form) {
                    
refresh(true);
                }
            });

            var 
refresh = function (forcibly) {
                
clearTimeout(timeout);

                var 
skip_ids = [];
                
$element.children().each(function () {
                    
skip_ids.push(this.id);
                });

                $.
post(url, {skip_ids: skip_ids.join(',')})
                    .
success(function (data) {
                        var 
i;

                        if (
data.remove && data.remove.length) {
                            for (
i = 0; i < data.remove.length; i++) {
                                $(
'#' + data.remove[i]).remove();
                            }
                        }

                        if (
data.add && data.add.length) {
                            for (
i = 0; i < data.add.length; i++) {
                                var 
after_id = data.add[i].after_id;
                                var 
$el = $(data.add[i].html).css('opacity', '0');

                                if (
after_id) {
                                    
$element.children('#' + after_id).after($el);
                                }
                                else {
                                    
$el.prependTo($element);
                                }
                                
$el.animate({opacity: 1}, 500);
                            }

                            if (!
forcibly) {
                                $(
document).trigger('newMessage');
                            }
                        }

                        
timeout = setTimeout(refresh, ajax_timeout);
                    })
                    .
error(function () {
                        
timeout = setTimeout(refresh, 60000);
                    });
            };

            
timeout = setTimeout(refresh, ajax_timeout);
        });
    });
})();
?>
Онлайн: 0
Реклама