scripty (scriptaculous) перетаскиваемый onEnd не выполняется в Safari

я создал очень похожий на iphone элемент слайдера, который одновременно ограничен в общем перемещении по горизонтали (0-400 пикселей и не перемещается по вертикали) и «привязывается» к любой стороне «контейнера» 400 пикселей, когда он проходит отметку 200 пикселей. и драка закончилась. В фаерфоксе работает идеально. В Safari никогда не вызывается функция onEnd, которая позиционирует элемент на любом конце этого 400-пиксельного контейнера. Более того, перетаскиваемый элемент «прилипает» к курсору мыши, и мне приходится перезагружать страницу, чтобы закончить анимацию.

Вот мой код

<div style="width:100px;height: 60px;background-color:#000;z-index:999" id="dragtest" />
<script language="JavaScript" type="text/javascript">
new Draggable('dragtest', { constraint: 'horizontal',
    onEnd: function(e, me) {
        console.debug("!!!")
        element = e.element
        x = element.style.left
        x = x.gsub('px','')

        if (x >= 200) {
            $('dragtest').style.left = 400+'px';

        }

        if (x < 200) {
            $('dragtest').style.left = 0+'px';
        }

        console.debug("Snapping to ", element.style.left, " (x was ", x, ")")
        return true;

    },
    snap: function(x, y) {
        ret_x = x
        ret_y = y

        if (x >= 400) {
            ret_x = 400
        }

        if (x <= 0) {
            ret_x = 0
        }

        return [ret_x,ret_y]

    }
});
</script>

Благодарность! Эндрю


person pgn    schedule 22.02.2009    source источник
comment
Сообщите об ошибке на bugs.webkit.org :D   -  person olliej    schedule 23.02.2009


Ответы (1)


Для справки в будущем (не удалось ничего погуглить), раскомментирование вызовов console.debug() из обработчика onEnd решило эту проблему. Странный.

person pgn    schedule 23.02.2009
comment
Вы имеете в виду закомментировать console.debug()? Если вы используете firebug, зайдите на их веб-сайт и обязательно используйте их файл-заглушку, который определяет такие функции, как console.debug(), чтобы браузеры /w-out firebug не взрывались. - person Cory R. King; 25.02.2009