Как вставить параметры

Тема в разделе "JavaScript", создана пользователем dirdir, 31 май 2015.

Модераторы: ZiX
  1. dirdir

    dirdir Постоялец

    Регистр.:
    19 мар 2012
    Сообщения:
    85
    Симпатии:
    11
    HTML:
      var $container = jQuery('#portfolio');
        $items = $container.children('.element');
        $container.imagesLoaded( function(){
            $container.isotope({
                itemSelector : '.element',
                layoutMode: '<?php echo $layout[0];?>',
                sortBy:'order',    sortAscending: function(){if (1==1){return false}},
                getSortData: {
                    name: function( $elem ) {
                        var name = $elem.find('.dataorder'),
                            itemText = name.length ? name : $elem;
                        return itemText.text();
                    },
                    date: function($elem){
                                  var name = $elem.find('.dataorder'),
                            itemText = name.length ? name : $elem;
                        return itemText.text();
                       
    
                    },
                    order: function($elem){
                        var _order = $elem.hasClass('element') ?
                                $elem.attr('data-order'):
                                $elem.find('.order').text();
                        return parseInt(_order);
                    }
                }
            }
    
            );
            tz_init('<?php echo $params -> get('tz_column_width',233);?>');
        });

    Есть вот такой код.
    Как мне сделать что бы строка sortAscending: function(){if (1==1){return false}},
    Заработала? Т.е. как мне определить парамтер sortAscending ?
    Почему эта фенкция ничего не возвращает?
     
  2. dirdir

    dirdir Постоялец

    Регистр.:
    19 мар 2012
    Сообщения:
    85
    Симпатии:
    11
    Везде эти безымянные функции понаписаны через запятую. И всё ок. Столо только мне свою впихнуть - всё не работает.
    Вот почему это работает
    HTML:
      name: function( $elem ) {
                        var name = $elem.find('.dataorder'),
                            itemText = name.length ? name : $elem;
                        return itemText.text();
                    },
    А то что я написал, такое же нет? Где там ошибка?
    sortAscending: function(){if (1==1){return false}},

    Почему не присваивается параметру sortAscending значение?
     
  3. denverkurt

    denverkurt Denve®

    Регистр.:
    23 дек 2013
    Сообщения:
    610
    Симпатии:
    348
    а какое значение должно присваиваться?
    фунция возвращает false, т.к. условие 1==1 верное, соответственно sortAscending = false
     
  4. dirdir

    dirdir Постоялец

    Регистр.:
    19 мар 2012
    Сообщения:
    85
    Симпатии:
    11
    да, но если вписать true
    то оно тоже не присвоится, в этом то вся и проблема.
    не срабатывает function(){if (1==1){return false}},

    Это, если кому-то интересно Isotope Дэвида Десандро, прикрученная к джумале.
     
  5. denverkurt

    denverkurt Denve®

    Регистр.:
    23 дек 2013
    Сообщения:
    610
    Симпатии:
    348
    а вы уверены что sortAscending должно быть функцией?
    http://isotope.metafizzy.co/sorting.html#sortascending смотрите документацию.
    либо явно указываем true \ false
    либо это объект с данными { name: true, weight: false, category: true, number: false }
     
  6. 628116

    628116 Создатель

    Регистр.:
    14 апр 2013
    Сообщения:
    15
    Симпатии:
    0
    может есть смысл использовать php тогда?
    sortAscending: <?php if (1==1){return false;} ?>
     
  7. dirdir

    dirdir Постоялец

    Регистр.:
    19 мар 2012
    Сообщения:
    85
    Симпатии:
    11
    Если я две точки ставлю перед символами, то что происходит?
    sortAscending : функция

    Фенкция срабатывает? или sortAscending - становится функцией и срабатывает хрен знает когда?

    И как тогда в моём коде впихнуть конструкцию что бы сделать sortAscending либо true либо false


    Где мне там вставить if (a=b) {тогда sortAscending == ...}
     
  8. denverkurt

    denverkurt Denve®

    Регистр.:
    23 дек 2013
    Сообщения:
    610
    Симпатии:
    348
    а что вообще вы хотите от этого параметра? он необходим только в том случае если вам нужна нестандартная сортировка, снизу вверх (Я-А) либо сложная сортировка по нескольким полям
    PHP здесь совершенно не нужен
     
  9. 628116

    628116 Создатель

    Регистр.:
    14 апр 2013
    Сообщения:
    15
    Симпатии:
    0
    sortAscending это не функция, это параметр, который говорит функции как делать сортировку a,b,c... или ...с,b,a
     
  10. dirdir

    dirdir Постоялец

    Регистр.:
    19 мар 2012
    Сообщения:
    85
    Симпатии:
    11
    Я понял что параметр. Смысл в том что я не знаю Javascript. Мне не понятно что там происходит.
    Цепочки функций, какие-то объекты. Куда что передаётся вообще не понять.
    Что будет если перед sortAscending поставить две точки : и определить функцию ?

    Она сразу сработает, или будет вызвана хрен пойми где и когда?

    Вы понимаете, нужно в зависимости от кнопки, либо вверх сортировать, либо вниз. За это отвечат sortAscending: true или sortAscending : false

    Ну и где мне в моём примере впихнуть тогда когд

    HTML:
    if  (нажата кнопка с id=повозрастанию) { тогда sortAscending: true }
    else
    {
    { sortAscending: true }
    }
    

    Я могу конечно на каждую кнопку написать свою функцию, но смысл то?