2016-04-04 1 views
0

Я работаю над проектом и пытаюсь использовать библиотеку YUI для фильтрации результата в списке, набрав слово фильтра, проблема в том, что иногда это отлично работает в других случаях, когда он просто ломается, говоря: «Непонятно Ошибка: не указан параметр inputNode.Не указан указатель inputNode. при использовании библиотеки YUI

это мой JS функция:

YUI(YUI3_config).use('autocomplete-base', 'autocomplete-filters', function (Y) { 
// Create a custom PieFilter class that extends AutoCompleteBase. 
var PieFilter = Y.Base.create('pieFilter', Y.Base, [Y.AutoCompleteBase], { 
    initializer: function() { 
    this._bindUIACBase(); 
    this._syncUIACBase(); 
    } 
}), 

// Create and configure an instance of the PieFilter class. 
filter = new PieFilter({ 
inputNode: '#ac-input20', 
minQueryLength: 0, 
queryDelay: 0, 

source: (function() { 
    var results = []; 

    Y.all('#list31 > .list31, #list31 > .list32').each(function (node) { 
    results.push({ 
     node: node, 
     tags: node.getAttribute('data-tags') 
    });; 
    }); 

    return results; 
    }), 
    resultTextLocator: 'tags', 

    resultFilters: 'phraseMatch' 
}); 

filter.on('results', function (e) { 
Y.all('#list31 > .list31, #list31 > .list32').addClass('hidden'); 

    Y.Array.each(e.results, function (result) { 
    result.raw.node.removeClass('hidden'); 
}); 

}); });

и это мой HTML:

<div id="play30" class="liste-donnees block ezcca-edit-datatype-ezdate"> 
<fieldset> 
    <legend> 
     <span class="long-legend-wrap">Ressources 
      <span class="classattribute-description"></span> 
     </span> 
    </legend> 
    <div style='width: 400px;'> 
     <label for="ac-input20">Filtre:</label> 
     <input id="ac-input20" type="text"> 
     <ul id="list31" class="liste-gauche"></ul> 
    </div>  
    <p style='float: left;margin-top: 150px;font-weight: bold'>=====></p> 
    <ul id="list32" class="liste-droite"></ul>  
</fieldset> 

любые идеи, спасибо за вашу помощь заранее

ответ

1

Обычно, "Нет inputNode указано." ошибка возникает, когда указанный вход (т. е. «# ac-input20») не может быть найден.

В общем, это звучит глупо здесь, как было объявлено в вашем HTML; когда ошибка возникает, проверили ли вы источник HTML, чтобы убедиться, что существует элемент «ac-input20»?

Кроме того, вы нацеливаете элементы '# list31> .list31', но в своем HTML ни один элемент не имеет класса с именем 'list31'.

Надеюсь, это поможет в любом случае.

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