Делать методы изменяемого размера делает поля ввода не кликабельными
У меня действительно странное поведение, и я потратил пару дней, чтобы попытаться выяснить, в чем проблема.
Методы MooTools делают мои поля ввода не кликабельными, и я не знаю почему.
$$('.class1.class2').makeResizable({
});
Приведенный выше фрагмент кода должен сделать все дочерние элементы div, у которых есть класс 'class1' и 'class2', быть изменяемого размера, и это работает отлично, но помимо этого это также делает поля ввода не активируемыми.
У кого-нибудь была подобная проблема?
Любая помощь будет признательна.
Спасибо
2 ответа
Так что проблема в том, что у вас нет handle
передается внутрь. Когда вы этого не сделаете, весь элемент становится слушателем mousedown, и попытки щелкнуть по любому дочернему элементу не будут правильно пузыриться, что приведет к странному поведению.
Я также обнаружил ошибку в логике добавления обработчиков, которая, по-видимому, неправильно оценивает дескрипторы.
https://github.com/mootools/mootools-more/blob/master/Source/Drag/Drag.js#L66 неверен на многих уровнях - он ожидает коллекцию / массив элементов, но смотрит в глобальный документ, а не на дочерний элементы - все же это заканчивает тем, что выбирает элемент в любом случае и игнорирует переданные коллекции как $$('.class1 .resizer')
я сделал небольшое изменение, чтобы принять строку для дочернего селектора и добавил обработчик изменения размера.
Вы должны отправить эту ошибку на https://github.com/mootools/mootools-more/issues хотя я сомневаюсь, что она будет обнаружена.
$$('.class1').makeResizable({
handle: '.resizer'
});
изменение, которое я сделал, чтобы сделать эту работу:
this.handles = this.element.getElements(this.options.handle);
в качестве альтернативы, вы можете использовать что-то вроде InteractJS для обработки этого.
Я не уверен на 100%, но вы можете попробовать это
Я думаю, что вы пропали без вести (,)
$$('.class1,.class2').makeResizable({
});