Знать, когда возникла коллизия позиций в пользовательском интерфейсе jQuery

Я пытаюсь расширить диалоговое окно 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 соответствующим образом.

Я сделал это некоторое время назад, поэтому дайте мне знать, если у вас возникнут проблемы. :)

10
задан Seth 9 January 2012 в 20:17
поделиться