SAP UI5-使用jQuery隐藏DOM中的对象

2020-09-09 13:41发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我正在使用SAPUI5,但在获取元素和修改其样式时遇到麻烦。 我正在使用一个简单的查询命令,通过其类名使用$("。sapUiCalItems");访问元素。 我已将此打印到控制台并确认它已定位到所需的元素。 但是,当我尝试调用hide或将display CSS更改为" none"时,似乎什么也没发生。 因此,我尝试使用的最终命令是:$("。sapUiCalItems")。hide(); $("。sapUiCalItems")。css(" display":" none"})); SAPUI中的Jquery是否有某些限制使之不可能? 通常,当您拥有ID或类时,最简单的方法是在DOM中隐藏某些内容?

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我正在使用SAPUI5,但在获取元素和修改其样式时遇到麻烦。 我正在使用一个简单的查询命令,通过其类名使用$("。sapUiCalItems");访问元素。 我已将此打印到控制台并确认它已定位到所需的元素。 但是,当我尝试调用hide或将display CSS更改为" none"时,似乎什么也没发生。 因此,我尝试使用的最终命令是:$("。sapUiCalItems")。hide(); $("。sapUiCalItems")。css(" display":" none"})); SAPUI中的Jquery是否有某些限制使之不可能? 通常,当您拥有ID或类时,最简单的方法是在DOM中隐藏某些内容?

付费偷看设置
发送
5条回答
何必丶何苦呢
1楼-- · 2020-09-09 14:17

感谢纳布希特。 我较早尝试了第一个解决方案,但没有用。 第二种解决方案似乎不可行,因为我们无法控制我们要操纵的组件(即PlanningCalendarView组件)的内部细节。 结果,我无法直接绑定到开箱即用组件的内部元素,然后对父组件冒泡将其设置为false或true,至少在不更改内部组件的情况下如此。

关于获取视图和隐藏,我现在在视图上找到了隐藏功能。

//获取整个日历的视图和隐藏,只是为了检查隐藏->抛出未找到隐藏功能的错误
this.getView()。hide();


//通过jquery获取元素
console.log($("。sapUiCalItems"))); //绝对有效。 隐藏实际的确切元素。 成功。
$("。sapUiCalItems")。hide(); //隐藏功能不起作用。 不执行任何操作,在控制台中没有错误。
$("。sapUiCalItems")。css(" display":" none"); //将display的css值更改为none以隐藏该元素。 不起作用。 控制台中没有错误。

我还尝试通过视图获取元素:

var element = this.getView()。byId(" por-MonthInt"); //成功。 获取父元素。
var arrayToDelete = element.findElements(" por-MonthInt--MonthsRow-months");

var arrayToDelete = element.findElements(" por-MonthInt--MonthsRow-months"); //成功。 但实际上会返回3个元素,但不应返回。 应该只返回1个匹配的元素。

基本上,我只是想了解为什么通过jquery访问的元素上的简单hide()函数不起作用。 通过byId方法访问元素也不起作用。

Cikesha
2楼-- · 2020-09-09 14:34

您可以通过两种不同的方式进行操作,一种是如果要在控制器中编码,则可以通过this.getView()读取对象。 )方法,然后使用set,隐藏可见方法,另一种方法是将元素的属性直接绑定到模型,例如 this

一只江湖小虾
3楼-- · 2020-09-09 14:23

如果仅隐藏日历,请尝试使用setVisible()方法,如

 oCalendar.setVisible(false)
# p#

我尝试了 日历示例可以正常工作

callcenter油条
4楼-- · 2020-09-09 14:13

您可以尝试类似的方法 :

 var oCtrl = $("。demo")。control();
 oCtrl.setVisible(false); 

致谢,

约瑟夫

d56caomao
5楼-- · 2020-09-09 14:29

谢谢大家!

看起来该命令实际上在起作用。 但是问题在于该命令在元素完成显示之前就已在运行。 通过控制台检查命令是否有效。 再次感谢!

一周热门 更多>