我对此代码段有疑问:
<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)
我收到包含其属性的消息,依此类推。
任何一个解决方案?
答案 0 :(得分:4)
使用getDomRef获取UI5控件的DOM元素。所以,你的代码将是这样的。
var oButton = sap.ui.getCore().byId("oChart_Button");
var el = oButton.getDomRef();
$(el).draggable({
cancel: false
});
jQuery选择器允许您选择和操作HTML元素。
执行$(oButton)
时,您将SAPUI5 Button
对象传递给jQuery选择器,这将无效。因此,要获取UI5 Button
控件的相应HTML DOM元素,请使用getDomRef
。
那么,即使将DOM传递给jQuery选择器,为什么你的按钮不能 draggable ?
这可能会发生,因为首先要为jQuery-Ui加载第三方库以实现可拖动功能。
然后,在加载SAPUI5
库之后,只有来自SAPUI5
库的函数可用。
因此,为了解决这个问题,我们可以在您的HTML
文件正文中的UI5库之后加载第三方库。