2013-05-31 2 views
-1

Я не могу понять способ вызова функции после того, как jquery selectable сделан, делая то, что делает (сортировка или что-то еще). Мне нужно выяснить, когда все будет сделано, потому что это швы, я не могу получить некоторые элементы. Вот код:функция вызова после выбора jquery selectable

Я хочу вызвать эту функцию для восстановления чисел zIndex .. reparaZindex() Я попытался поместить его в начало или обновление, но ничего не работает.

$(function() { 
    $(".sortable").disableSelection(); 
    $(".sortable").sortable({ 
     start: function(event, ui) {}, 
     update: function (event, ui) {} 
     }); 
    }); 

Мой сценарий работает нормально, когда страница загружена, я могу проверить все Ид-е, но после изменения списка не работает. Вот ссылка, чтобы увидеть:

(я поставил reparaZindex в остановку в примере выше, но не работает)

+0

Я запутался с тем, что вы говорите. Вы попробовали 'update: function (event, ui) {reparaZindex(); } '? – Ian

+1

Я думаю, вы ищете это? $ (this) .stop(); –

+0

Да, я попробовал (я поместил его в обновление, затем в начале, но ничего не работает, как я сказал) – raducup

ответ

-1

Попробуйте этот бит кода:

$(function() { 
    $(".sortable").disableSelection(); 
    $(".sortable").sortable({ 
     stop : function(event, ui){ 
     reparaZindex(); 
     alert("bananas eat children"); 
    } 
     }); 
    }); 

Если вы получить предупреждение, но ваша функция не работает, это означает, что ваш reparaZindex() делает что-то неправильно.


$(function() 
{ 

    $(".sortable").disableSelection(); 
    $(".sortable").sortable({ 

     start: function(event, ui) { 
     var start_pos = ui.item.index(); 
     ui.item.data('start_pos', start_pos); 
    }, 





     update: function (event, ui) { 
     var start_pos = ui.item.data('start_pos'); 
     var end_pos = ui.item.index(); 

      var eroare=0; 

      //incepe trimiterea la bd a indexurilor 

      for(var i=0;i<ui.item.parent().children().length;i++){ 
        if(1==0) //eroare 
        eroare=1; 
        var x =ui.item.parent().children()[i]; 
        //$(x).find('img').css('z-index',500-i); 
        y=$(x).children()[0]; 
        y.style.zIndex=500-i*2; 
        if($(x).children().length>1){ 
        c=$(x).children()[1]; 
        TEMP=500-i*2+1; 
        c.style.zIndex=TEMP; 
        //alert(TEMP); 
        //alert($(x).children()[1].id) 
        } 
       } 
      if(eroare==0)//daca bd a upatat indexurile pt start_pos la eng pos 
      { 
       var copii=ui.item.parent().children(); 
       for(var i=0;i<ui.item.parent().children().length;i++){ 
        //alert(ui.item.parent().children().eq(i).id()) 
       } 


      } 
      else { 


       } 


    }, 
    stop: function(event, ui) { $.each($(".sortable > li"), function() {alert("!!!"+$(this).attr("id"));}); } 

    }); 
}); 
+0

Стоп не работает, по крайней мере, так же хорошо, как и обновление (если я вызываю reparaZindez в обновлении, он не может видеть один элемент, но в stop не может видеть ни одного элемента, кроме одного) – raducup

+0

Стоп - это событие, которое автоматически запускается при сортировке. Он ничего не видит, потому что это событие. Возможно, вы должны опубликовать свой reparaZindex(); так как, скорее всего, ваша проблема есть;). Поставьте банановый сигнал в функцию reparaZindex(), если он срабатывает, прекратите работу. –

+0

Эта функция работает хорошо, если я не изменяю элементы в списке. (Я знаю, потому что я называю это, когда начинается страница: window.onload) – raducup

Смежные вопросы