JQuery .resizable, как выбрать дочерний элемент для свойства tooResize - PullRequest
2 голосов
/ 27 января 2011

У меня есть всплывающие окна, которые можно перетаскивать и изменять их размер.Все прекрасно работает, за исключением того, что мне нужно окно изменения размера, чтобы также изменить размер div внутри него.Это легко сделать, установив alsoResize: 'selector', однако, каждый экземпляр этого окна имеет один и тот же div с одним и тем же именем класса.Если вы изменяете размер одного окна, оно изменяет размеры внутренних элементов ВСЕХ открытых окон.

$(chatWindow).draggable({ handle: '.dragHandle', containment: 'window', stack: '.chatWindow' })
    .resizable({ resize: function (event, ui) {
        api.reinitialise();
    },
        alsoResize: chatWindow + ' > .chatTerminal',
        start: function (event, ui) {
            var currentPosition = api.getContentPositionY();
            api.scrollToBottom();
            var maxPosition = api.getContentPositionY();
            api.scrollToY(currentPosition);
            var isAtBottom = (currentPosition == maxPosition);
            $(chatWindow).data('isAtBottom', isAtBottom);
        },
        stop: function (event, ui) {
            if ($(chatWindow).data('isAtBottom'))
                api.scrollToBottom();
        },
        minHeight: 125,
        minWidth: 250
    });

alsoResize: chatWindow + ' > .chatTerminal', не работает для выбора дочернего элемента.Я не могу использовать .find, потому что также Resize принимает только селектор.Очевидным быстрым решением было бы добавить имя окна (которое уникально для каждого нового окна) к внутреннему элементу div, а затем использовать селектор идентификатора на внутреннем элементе div.Мне просто любопытно, если есть лучший способ закрепить дочерний элемент, используя селектор onlyResize.

1 Ответ

1 голос
/ 27 января 2011
var chatTerminal = '#' + channel + "_terminal";

alsoResize: chatTerminal

channel - это уникальный идентификатор главного окна, поэтому я просто добавил этот же уникальный идентификатор к дочернему элементу div при создании окна.Тогда я могу просто использовать chatTerminal, чтобы ссылаться на него из опции tooResize.Я перечисляю этот ответ на случай, если никто не ответит, и я приму его.Однако, если у кого-то из вас есть лучший способ выбрать ребенка из строки выбора, скажите мне:)

...