Я пытаюсь расширить диалоговое окно jQuery UI (), чтобы использовать стрелки для указания на то, что было нажато. Проблема, с которой я столкнулся, состоит в том, чтобы знать, когда запускается метод столкновения, чтобы я мог переключаться на указатели с левой стороны на правую сторону.
Можно ли узнать, когда сработал метод position.collision?
$('#myElem').dialog({
position:{
collision:'flip'
}
});
Решение:
Как оказалось, вы можете передать больше, чем говорится в документации. Вот то, что я использовал, решило мою проблему:
position:
{
my: 'left top',
at: 'right center',
of: $trigger,
offset: '20 -55',
collision: 'flip',
using: function(obj) {
var $modal = $(this),
trigger_l = $trigger.position().left,
modal_l = obj.left,
top;
// Check IE's top position
top = ( isIE ) ? obj.top - 48 : top = obj.top;
$(this).css({
left: obj.left + 'px',
top: top + 'px'
});
}
}
Я использовал метод using
внутри объекта position
, чтобы выполнить большую часть работы. Затем я быстро проверил, является ли это IE, как было сделано ранее в документе, и соответственно установил свой CSS.
Я делал это некоторое время назад, поэтому дайте мне знать, если у вас возникнут проблемы. :)