0
我正在使用以下代碼來創建自動完成文本框。 jQuery如下。製作委託jQuery自動完成
$(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選擇器轉換爲委託的呢?
我有點基於答案寫下如下,但它仍然不起作用。
$('#items').delegate('#items .slno','keyup', function() {
$(this).autocomplete({
source: 'search.php'
});
});
然後我繼續使用以下內容。
$(function(){
$('#items').on('.slno','keyup.autocomplete', function(){
$(this).autocomplete({
source : 'search.php'
});
});
});
它也失敗了。我如何實現這一目標?
UPDATE
在上面的例子中,事件的順序被搞亂了。只需要使用正確的語法
$(selector).on(event,childSelector,data,function,map)
這使得我的代碼如下所示。
$(function(){
$('#items').on('keyup.autocomplete','.slno', function(){
$(this).autocomplete({
source : 'search.php'
});
});
});
它做了任務!
類=「slno」未在其他列 – abhi
實現我不明白你想什麼說 –
類,如果OP被克隆行,被添加到該行@abhi –