Как связать и открепить функцию библиотеки jQuery стороннего производителя - PullRequest
0 голосов
/ 11 ноября 2009

Я создал код для добавления строки таблицы с полем формы и попытался привязать стороннюю функцию SuggestBox к каждому динамически генерируемому полю формы.

<script type="text/javascript"> 
$(document).ready(function() {
    $('#form1').validationEngine();
    var newRowNum = 1;
    $(".addRow").click(function(){
        var $newTr = $("#tb1 tbody>tr:last").clone(true);
        $newTr.find('input[id^=foods]').unbind(jsonSuggest());  <== try to unbind the previouse jsonsuggest()
        //$newTr.find('.jsonSuggestResults').remove();
        $newTr.appendTo("#tb1 tbody");
        $('input[id^=foods]', $newTr).val('');
        $newTr.find('input[id^=foods]').each(function(){
            $(this).jsonSuggest(
                    function(text, wildCard, caseSensitive, notCharacter) {
                        rez = $.ajax({ 
                            type: 'GET', 
                            url: 'getFoodJSON.jsp',
                            data: 'foods=' + text,
                            dataType: 'json', 
                            async: false 
                        });
                        return eval(rez.responseText); 
                        },
                        { ajaxResults:true 
                        });
        });
        $newTr.find('input[id^=supplyDate]').each('id', function(){
            $(this).datepicker({dateFormat:'yy-mm-dd'});
        });
    });
});

Однако в предложениях SuggestBox накапливаются дубликаты. Вот результат, когда я вписываю что-то в строку 7 ...

текст ссылки

Не могли бы вы рассказать мне, как отменить привязку примененной функции к предыдущему полю строки + формы? Спасибо.

1 Ответ

0 голосов
/ 11 ноября 2009

Написав unbind(jsonSuggest()), вы вызываете jsonSuggest и отменяете привязку возвращаемого значения. Если функция jsonSuggest не является генератором, который возвращает метод-обработчик (который, вероятно, не является), это не то, что вам нужно. Если это так, это все еще не то, что вам нужно, если только он не возвращает один и тот же обработчик каждый раз.

Вы хотите (я предполагаю) отменить привязку самой функции jsonSuggest, написав unbind(jsonSuggest) без скобок.

...