2016-01-28 6 views
0

Для создания текстового поля с автозаполнением я использую следующий код. JQuery выглядит следующим образом.Сделать делегированный jQuery Auto-complete

$(function() { 
    $("#items .slno").autocomplete({ 
     source: 'search.php' 
    }); 
}); 

HTML выглядит следующим образом.

<table id="items"> 
    <tr class="item-row"> 
      <td class="item-name"><div class="delete-wpr"><a class="delete" href="javascript:;" title="Remove row">-</a></div></td> 
      <td><input type="text" id="slslno" class="slno"/></td> 
      <td><input type="text" class="cost"/></td> 
      <td><input type="text" class="qty"/></td> 
      <!-- <td><span class="price"></span></td>--> 
      <td class="price"></td> 
      <a class="add" id="addrow" href="javascript:;" title="Add a row">+</a> </tr> 

</table> 

Автозавершение работ для первого ряда. Однако, когда вторая строка создается, нажав кнопку «Добавить строку» в приведенном выше коде (все работает нормально), Auto_complete просто не работает над последующими строками. Я выяснил, что для этого мне понадобится делегированный обработчик. Как я могу преобразовать свой текущий селектор jQuery в делегированный?

I Kinda написал на основе ответа, как показано ниже, но он все еще не работает.

$('#items').delegate('#items .slno','keyup', function() { 

    $(this).autocomplete({ 
     source: 'search.php' 
    }); 

    }); 

Затем я продолжил использовать следующее.

$(function(){ 
    $('#items').on('.slno','keyup.autocomplete', function(){ 
    $(this).autocomplete({ 
     source : 'search.php' 
    }); 
    }); 
}); 

И это тоже не удалось. Как мне это достичь?

ОБНОВЛЕНИЕ

В приведенном выше примере, упорядочение мероприятия было перепуталось. Просто необходимо использовать правильный синтаксис

$(selector).on(event,childSelector,data,function,map) 

Что делает мой код похожим на следующее.

$(function(){ 
    $('#items').on('keyup.autocomplete','.slno', function(){ 
    $(this).autocomplete({ 
     source : 'search.php' 
    }); 
    }); 
}); 

И это сделало задачу !!!

+0

класс = «slno» не реализована на других колонках – abhi

+1

я не понимаю, что вы пытаетесь сказать –

+0

Класс, если ОП клонировать строку, добавляется к строке @abhi –

ответ

0

Код ниже работал для меня как шарм.

$(function(){ 
     $('#items').on('keyup.autocomplete','.slno', function(){ 
     $(this).autocomplete({ 
      source : 'search.php' 
     }); 
     }); 
    }); 
Смежные вопросы