Я пытаюсь расширить диалог 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 top position
top = ( isIE ) ? obj.top - 48 : top = obj.top;
$(this).css({
left: obj.left + 'px',
top: top + 'px'
});
}
}
Я использовал метод using
внутри объекта position
, чтобы выполнить большую часть работы. Затем я сделал быструю проверку, чтобы увидеть, был ли он IE, сделанный ранее в документе, и соответственно установите мой CSS.
Я сделал это некоторое время назад, поэтому дайте мне знать, если у вас возникнут проблемы.:)