Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Не страбатывает строка в коде (https://javascript.ru/forum/jquery/52805-ne-strabatyvaet-stroka-v-kode.html)

Sanu0074 07.01.2015 20:32

Не страбатывает строка в коде
 
Есть кусок jquery плагина
sort: function(ctx){
            if(ats){
                ats = false;
                return;
            }
            sortField = ctx.data('colkey');
            
            $('.col-head[data-colkey="'+sortField+'"] span').addClass('sort-desc');
            
            if(sortDirect.length<2 || sortDirect == 'ASC'){
                sortDirect = 'DESC';
            }else{
                sortDirect = 'ASC';
            }
            
            this.loadContent();
        },

Здесь не срабатывает данная строка:
$('.col-head[data-colkey="'+sortField+'"] span').addClass('sort-desc');

Все переменные имеют нужные данные, проверял. Консоль молчит. Вызывается функция так:
onclick="s.sort($(this))"

Почему не срабатывает addClass() ?

danik.js 07.01.2015 20:57

Добавь перед этой строкой:
var selector = '.col-head[data-colkey="'+sortField+'"] span';
console.log(selector);
console.log(document.querySelector(selector));

Sanu0074 07.01.2015 21:15

Вот что говорит консоль:
Цитата:

.col-head[data-colkey="name"] span
<span title=​"Искать по значению этого поля" onclick=​"s.addToSearch($(this)​)​" class=​"sort-desc">​Имя​</span>​

рони 07.01.2015 21:32

Цитата:

Сообщение от Sanu0074
Почему не срабатывает addClass() ?

Цитата:

Сообщение от Sanu0074
class=​"sort-desc"

у данного элемента уже есть этот класс

danik.js 07.01.2015 21:54

Кстати зачем делать запрос через селектор, если ctx - и есть нужный элемент? Или так не всегда?

Sanu0074 07.01.2015 23:07

рони,
danik.js,
Так класс не добавляется:
sort: function(ctx){
            if(ats){
                ats = false;
                return;
            }
            sortField = ctx.data('colkey');
            ctx.find('span').addClass('sort-desc');
            if(sortDirect.length<2 || sortDirect == 'ASC'){
                sortDirect = 'DESC';
            }else{
                sortDirect = 'ASC';
            }
            this.loadContent();
        },

А так срабатывает:
sort: function(ctx){
            if(ats){
                ats = false;
                return;
            }
            sortField = ctx.data('colkey');
            ctx.find('span').addClass('sort-desc');
            return;
             
        },

Почему?

Sanu0074 07.01.2015 23:08

Вся суть в этой строке:
this.loadContent();
если ее убрать - то работает
Вот сама loadContent:
loadContent : function(){								
            var cpage = parseInt($(curPage).val()),
            apage = parseInt($(totalPages).html());
            if(cpage<1 || cpage>apage){
              $(curPage).css('background','#ffb0b0');
              return;  
            }else{
              $(curPage).css('background','#f5faff');  
            }

            $(cList).addLoadImg("Loading...");

            $(cList).load(HOST+'load/section/'+TARGET+'/'+SECTION,{page:cpage,instruments:0,sortField:sortField,sortDirect:sortDirect});	
        },

Sanu0074 07.01.2015 23:23

Я нашел ошибку, всем спасибо)

рони 07.01.2015 23:23

Sanu0074,
так наверно ответ с сервера ждать нужно ... :-?


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