Я знаю, что это вопрос давно, но данные решения не решают мою проблему. Я нашел способ добраться до обработчика в функции запуска, и он работает в FF и Chrome. Моя организация не поддерживает IE, поэтому он не проверен, но в этом случае способ FF должен работать, поскольку это более стандартная обработка событий.
$(".resizable").resizable({
start: function (event, ui) {
var dir = event.toElement ? event.toElement : event.originalEvent.target;
}
});
dir
- это фактический обработчик, вам нужно будет найти класс и направление от него (разбор по списку классов, если я туда попаду, я опубликую то, что я делаю).
Полезно знать направление, в котором происходит изменение размера, до изменения размера по многим причинам, и я действительно считаю, что jQuery должен был включать способ узнать, какой дескриптор был захвачен.
Позже редактировать:
jQueryUI предоставляет геттеры для их API, в этом случае, чтобы получить список дескрипторов, который вы просто сделаете
var handles = $( ".selector" ).resizable( "option", "handles" );
(прямо изо рта лошади). В моем случае, я просто проверил, было ли это 'n' или 's' (вверх или вниз), а затем вычислил изменение размера в объекте, захватив исходный размер в функции запуска и используя функцию изменения размера как цикл продолжать рассчитывать это. Если размер уменьшался, направление было вверх, если с южной ручки, и вниз, если с северной ручки, и если оно увеличивалось, это означало, что направление было вниз от южной ручки или вверх от северной ручки.
Чтобы узнать, было ли это 'n' или 's', я просто схватил dir
сверху и вырезал все, кроме последней буквы, из имени возвращенного класса, поскольку класс похож на ui-handle-s
.
Это на самом деле довольно смешно, так как я не использовал большую часть этого, так как я изменил его, чтобы изменить размер только снизу. Поскольку я им не пользуюсь, надеюсь, кому-то еще это пригодится.