получить смещение перетаскиваемого окна кендо - PullRequest
0 голосов
/ 30 апреля 2020

Как я могу получить смещение (); моего окна кендо во время его перетаскивания ... Например, в jQuery UI работает ниже:

$('#easterEgg').draggable(
    {
        drag: function(){
            var offset = $(this).offset();
            var xPos = offset.left;
            var yPos = offset.top;


            $('#posX').text('x: ' + xPos);
            $('#posY').text('y: ' + yPos);
        }
    });

jsfiddle demo

Но когда Я пытаюсь включить то же самое, с kendo ui, я ничего не получаю: перепробовал несколько вариантов ниже, без ошибок, просто без вывода. Как я могу сделать то же самое с kendo ui?

$("#easterEgg").kendoWindow({
        draggable: true,

         drag: function(){
            var offset = $(this).offset();
            var xPos = offset.left;
            var yPos = offset.top;


            $('#posX').text('x: ' + xPos);
            $('#posY').text('y: ' + yPos);
        }
});

1 Ответ

1 голос
/ 30 апреля 2020

В вашем коде есть несколько ошибок.

Прежде всего, нет события drag, проверьте документы . Для этого вы должны использовать dragstart или dragend.

Вторая проблема заключается в том, что javascript каркасы отличаются друг от друга по своим функциональным возможностям. Поскольку this в jQuery UI является модальным элементом, это не означает, что он одинаков для всех других фреймворков. В Kendo UI this ключевое слово в большинстве случаев является экземпляром виджета, который имеет гораздо больший смысл, чем ссылка только на целевой элемент. Экземпляр виджета имеет свойство с именем element, которое является целевым элементом, в котором создается виджет.

Учитывая, что ваш код должен быть:

dragstart: function() { // or dragend
    let offset = $(this.element).offset();
}

Demo

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...