我有弹出的窗口,可以拖动和调整大小。一切都很好,除了我需要调整大小窗口也调整其中的div。这可以通过设置alsoResize: 'selector'
轻松完成,但是,此窗口的每个实例都具有相同的div,并且具有相同的类名。如果您调整一个窗口的大小,它会调整所有打开窗口的内部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因为alsoResize只接受选择器。显而易见的快速解决方案是将窗口名称(每个新窗口的唯一名称)附加到内部div,然后在内部div上使用id选择器。我只是好奇是否有更好的方法来仅使用allResize的选择器来确定子元素。
答案 0 :(得分:1)
var chatTerminal = '#' + channel + "_terminal";
alsoResize: chatTerminal
channel
是主窗口的唯一ID,因此我在创建窗口时只将相同的唯一ID附加到子div上。然后我可以使用chatTerminal
从alsoResize选项中引用它。我列出了这个答案,以防没有人回答,我会接受。但是,如果你们中的任何人有更好的方法从选择器字符串中选择一个孩子,请告诉我:)