Делать методы изменяемого размера делает поля ввода не кликабельными

У меня действительно странное поведение, и я потратил пару дней, чтобы попытаться выяснить, в чем проблема.

Методы 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')

я сделал небольшое изменение, чтобы принять строку для дочернего селектора и добавил обработчик изменения размера.

http://jsfiddle.net/pbu5uzho/

Вы должны отправить эту ошибку на https://github.com/mootools/mootools-more/issues хотя я сомневаюсь, что она будет обнаружена.

$$('.class1').makeResizable({
    handle: '.resizer'
});

изменение, которое я сделал, чтобы сделать эту работу:

this.handles = this.element.getElements(this.options.handle);

в качестве альтернативы, вы можете использовать что-то вроде InteractJS для обработки этого.

Я не уверен на 100%, но вы можете попробовать это

Я думаю, что вы пропали без вести (,)

$$('.class1,.class2').makeResizable({

});
Другие вопросы по тегам