|
плагин autocomplete от jqueryОбсуждение темы плагин autocomplete от jquery в разделе HTML, CSS, JavaScript, часть категории ВЕБ-ПРОГРАММИРОВАНИЕ; Пытаюсь задействовать autocomplete у себя на сайте. Проблема стоит в том, что у меня список динамический. Т.е. изначально одно поле с автоподбором. Потом ... |
|
Опции темы |
14.12.2008, 22:01 | #1 |
|
Пытаюсь задействовать autocomplete у себя на сайте.
Проблема стоит в том, что у меня список динамический. Т.е. изначально одно поле с автоподбором. Потом можно добавлять еще n полей. И в каждом необходим один и тот же автоподбор. Т.к. id у всех разный, я пытался сделать таким образом: Код:
$(document).ready(function(){ $('input.styleclass').autocomplete("../script.php", { autoFill:true, minChars:1, delay:10, cacheLength:10, matchSubset:1, matchContains:1, selectOnly:true, formatItem:liFormat, maxItemsToShow:20, onItemSelect:selectItem }); }); Потом я попробовал после каждого добавления поля добавлять скрипт с обновляемым счетчиком: Код:
$(document).ready(function(){ $('#id1').autocomplete("../script.php", { autoFill:true, minChars:1, delay:10, cacheLength:10, matchSubset:1, matchContains:1, selectOnly:true, formatItem:liFormat, maxItemsToShow:20, onItemSelect:selectItem }); }); Почему такое может происходить? На сайте http://www.linkexchanger.su/ пытался найти ответ, но все не то. Гугл тоже молчит. Событие click() тоже пытался задействовать |
|
15.12.2008, 11:08 | #2 |
|
Anthony, насколько я понял, у тебя поля добавляются динамически. То есть изначально у тебя в документе только одно поле. Потом (например при нажатии на некую кнопку) у тебя добавляются ещё.
Если я правильно понял, то всё, что ты делаешь - эдакий бредятник... Функция $.ready теоритически вызывается лишь 1 раз, сразу после загрузки объектной модели документа. в этой функции ты (в первом случае) ставишь autocomplete на все объекты в документе, имеющие некий класс, а у тебя на момент загрузки есть только 1 такой объект - первое поле. Во втором случае, если опять-же поля добавляются динамически... Я вообще непонимаю, как оно работает в FF. То есть в случае динамического создания полей, ты дорлжен инициировать autocomplete после добавления каждого поля. В случае, если таки у тебя статический набор полей, но 1-й варианет у тебя не работает, то вполне вероятно, что autocomplete попросту написан криво, и его можно инициировать лишь коллекцией из 1-го элемента. тогда вместо. Код:
$('input.styleclass').autocomplete(... Код:
$('input.styleclass').each(function() { $(this).autocomplete(... |
|
15.12.2008, 11:46 | #3 | |||||
|
Makarenya,
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
|
|||||
|
15.12.2008, 12:06 | #4 |
|
А вот с динамическими делаем так!
напимер у нас есть некая кнопка например с id="addbutton", неважно. раз ты както поля добавляешь, значит и кнопку както видишь. и добавление у тебя происходит например так Код:
$('#addbutton').click(function() { $('#fildscontainer').append('<input ... />'); } Код:
$('#addbutton').click(function() { var inp = $('<input ... />').appendTo('#fildscontainer'); inp.autocomplete(...); } |
|
Этот пользователь сказал спасибо Асмодиан за это полезное сообщение: | Anthony (15.12.2008) |
15.12.2008, 12:52 | #5 |
|
Makarenya, спасибо...
пробую воспроизвести данный код Добавлено через 30 минут блин, не работает. Вот что я написал: Код HTML:
<div id="LL"><input id="id_num" type="hidden" value="0"></div> <a id="button_add" href="javascript:">Add</a> Код:
$('#button_add').click(function(a){ num = $("#id_num").val(); num++; $("#id_num").val(num); newDiv = '<div id="LL' + num + '">'; newDiv += '<input class="someclass" type="text" id="field' + num + '"/></div>'; var inp = $(newDiv).appendTo('#LL'); inp.autocomplete("../script.php", { autoFill:true, minChars:1, delay:10, cacheLength:10, matchSubset:1, matchContains:1, selectOnly:true, formatItem:liFormat, maxItemsToShow:20, onItemSelect:selectItem }); }); Последний раз редактировалось Anthony; 15.12.2008 в 12:55.. Причина: Добавлено сообщение |
|
15.12.2008, 13:34 | #6 |
|
Эх, дерёвня
смотри, ты совсем не вникаешь в связь между переменными и объектами. В примере, который написал я, переменная inp связанны с объектом input! и всё работает, а вот в твоём случае переменная inp это <div id="LL' + num + '">', и ты пытаешься поставить autocomplete на этот самый div, правда нехорошо... А должен же ты инизиировать autocomplete как раз на объекте типа input!, в твоём случае это можно сделать несколькими способами. например: Код:
var newInp = $('<input class="someclass" type="text" id="field' + num + '"/>'); var newDiv = $('<div id="LL' + num + '"></div>'); newDiv.append(newInp); $('#LL').append(newDiv); newInp.autocomplete(...); Код:
var inp = $(newDiv).appendTo('#LL'); $('#field' + num).autocomplete("../script.php", { autoFill:true, minChars:1, delay:10, cacheLength:10, matchSubset:1, matchContains:1, selectOnly:true, formatItem:liFormat, maxItemsToShow:20, onItemSelect:selectItem |
|
Этот пользователь сказал спасибо Асмодиан за это полезное сообщение: | Anthony (15.12.2008) |
15.12.2008, 14:30 | #7 |
|
Makarenya, а слона то я не заметил))) связь уловил
Все заработало!! Псиб огромное! |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
подскажите что за плагин | DeCa | HTML, CSS, JavaScript | 2 | 26.01.2011 00:15 |
Плагин facebook - как получить id ? | vitaly-go | HTML, CSS, JavaScript | 0 | 26.08.2010 12:42 |
Плагин фотогалереи | ddddd | HTML, CSS, JavaScript | 5 | 30.10.2009 08:40 |
Плагин autocomplete от jquery и AJAX | Dobrynin | HTML, CSS, JavaScript | 2 | 26.10.2009 11:21 |
Плагин DirectResize для MODX | ddddd | ASP, Perl, PHP и MySQL | 2 | 29.09.2009 23:52 |
Реклама на форуме
Условия размещения рекламы
Биржа ссылок
Заработай на сайте!
|