Для создания текстового поля с автозаполнением я использую следующий код. 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'
});
});
});
И это сделало задачу !!!
класс = «slno» не реализована на других колонках – abhi
я не понимаю, что вы пытаетесь сказать –
Класс, если ОП клонировать строку, добавляется к строке @abhi –