Uncaught TypeError: Cannot use 'in' operator to search for 'position' in undefined

Uncaught TypeError: Cannot use 'in' operator to search for 'position' in undefined

这段代码片段有问题:

<script>
                $.sap.require('sap.ui.thirdparty.jqueryui.jquery-ui-core');
                $.sap.require('sap.ui.thirdparty.jqueryui.jquery-ui-widget');
                $.sap.require('sap.ui.thirdparty.jqueryui.jquery-ui-mouse');
                $.sap.require('sap.ui.thirdparty.jqueryui.jquery-ui-draggable');
                $.sap.require('sap.ui.thirdparty.jqueryui.jquery-ui-sortable');
        </script>
        <script>
                jQuery.sap.includeStyleSheet("resources/css/dashboard.css");
                sap.ui.localResources("dashboard");
                var view = sap.ui.view({id:"idHome1", viewName:"dashboard.Home", type:sap.ui.core.mvc.ViewType.JS});
                view.placeAt("content");
        </script>
        <script>
            var oButton = sap.ui.getCore().byId("oChart_Button");
            console.log(oButton);
            $(document).ready(function(){
                $(oButton).draggable({
                    cancel: false
                })
            })
        </script>

我无法拖动我的按钮,因为标题中有 ErroMessage。我从互联网上得到了这个例子,对于评论这个博客的人来说,代码会运行。该按钮存在,console.log(oButton) 我收到一条消息,其中包含它的属性等等。 任何一个解决方案?

使用 getDomRef 获取 UI5 控件的 DOM 元素。所以,你的代码将是这样的。

var oButton = sap.ui.getCore().byId("oChart_Button");
var el = oButton.getDomRef();
$(el).draggable({
    cancel: false
});

jQuery select 或允许您 select 和操作 HTML 个元素。 当您执行 $(oButton) 时,您会将 SAPUI5 Button 对象传递给 jQuery select 或者,这将不起作用。因此,要获得 UI5 Button 控件的相应 HTML DOM 元素,使用 getDomRef

那么,为什么即使在将 DOM 传递给 jQuery select 或?

之后,您的按钮仍无法 拖动

发生这种情况可能是因为您首先要为 jQuery-Ui 加载第三方库以实现可拖动功能。 然后,在加载 SAPUI5 库之后,因此只能使用 SAPUI5 库中的函数。 因此,为了克服这个问题,我们可以在 HTML 文件的正文中加载 UI5 库之后的第三方库。