Есть ли лучший способ отображения динамического текста рядом с полем со списком? - PullRequest
1 голос
/ 21 декабря 2010

У меня есть поле со списком, и на основании текущего выбора я бы хотел, чтобы динамический текст появлялся рядом с списком.
Мое текущее решение работает, но кажется грязным и хрупким.Он может не работать вообще, в зависимости от того, где в DOM появляется поле со списком.
Вот суть моего текущего решения (которое вызывается при изменении выпадающего списка):

    var child = owner.el.first().next().first().first().first().next().first();
    if (child.dom.childNodes.length == 3) {
        child.createChild({
            tag: 'span',
            html: c + Ext.id()
        });                      
    } else {
        child.last().replaceWith({
            tag: 'span',
            html: c + Ext.id()
        });
    }

Меня больше всего беспокоитпервая строка ... это не может быть хорошим способом найти точку вставки.

Вот изображение комбинированного окна с динамическим текстом рядом с:

alt text

И вот что я посмотрел, чтобы найти, куда я хотел вставить текст:

alt text

Может кто-нибудь предложить лучший способ достижения этого эффекта?Благодаря.

Ответы [ 3 ]

0 голосов
/ 21 декабря 2010

Всегда ли это будет в div, называемом "ext-gen82"?

Если так, то почему бы не использовать метод поиска jquery?

$("#ext-gen82").find("ext-gen107");

В качестве альтернативы вы можете дать им собственный класс, чтобы помочь вам найти их также:

$(".parentClass").find(".spanElement");

Вы также можете использовать метод детей:

$("#ext-gen82").children("span");
0 голосов
/ 21 декабря 2010

@ OrangeDog указал мне верное направление, но я опубликую более подробный ответ здесь для полноты / будущей ссылки.

var inserted = false; // need to set this up initially
...
var pos = Ext.getCmp('combo-element-id').el.next('.x-form-trigger');
if (inserted) {
    pos.next().update(c + Ext.id());
} else {
    inserted = true;
    pos.insertSibling({
        tag: 'span',
        html: c + Ext.id()
    }, 'after');                            
}                                             
0 голосов
/ 21 декабря 2010

Имейте диапазон на странице уже и захватите его по его идентификатору.

Ext.get('combo-suffix').insertHTML(theText);

Или, возьмите элемент комбинированного списка по его идентификатору и получите / добавьте его родного брата.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...