dojo ListItem:调整大小时显示样式更改

时间:2016-11-23 09:32:17

标签: javascript html css dojo

我道歉,但我无法提供有效的jsFiddle代码段。如果我理解如何将代码放在其中,我将更新问题。 使用dojox / mobile我使用自定义ListItem填充EdgeToEdgeStoreList。一些代码: html(玉) DIV(数据道场型=" DojoX中/移动/查看&#34)     h1(data-dojo-type =" dojox / mobile / Heading")设备列表     DIV(数据道场型=" DojoX中/移动/ ScrollablePane&#34)         ul#list(data-dojo-type =" dojox / mobile / EdgeToEdgeStoreList" data-dojo-props =" itemRenderer:DeviceListItem,select:' single'" ) JS var store; var list = registry.byId(" listDevices"); var devices = JSON.parse("从服务器接收的字符串"); store = new Memory({data:devices,idProperty:" label"}); list.setStore(存储); DeviceListItem 限定([     " DojoX中/移动/列表项&#34 ;,     "的dijit / _TemplatedMixin&#34 ;,     "道场/ _base /声明" ],function(ListItem,TemplatedMixin,declare){     var template =         "< div class =' deviceDone $ {done}'>" +         " $ {id} - < div style =' display:inline-block;'数据道场-连接点=' labelNode'>< / DIV>" +         " < div class =' deviceCategory'> $ {category}< / div>" +         "< / DIV>&#34 ;;     TemplatedListItem = declare(" DeviceListItem",         [ListItem,TemplatedMixin],{             id:"",             标签:"",             类别:"",             完成:" false",             templateString:template         }     ); }); 它工作正常,就是我会看到我的自定义ListItems。 但是,如果我调整窗口大小(在桌面浏览器上)或更改方向(在移动窗口上),只有$ {id}字段仍然可见。其他(标签和类别)消失。所有浏览器(我尝试过)的行为都是一样的。 调试后我发现了以下内容。在任何调整大小之前,ListItem的实际html如下所示: < div id =" item1728" class =" deviceDoneFalse mblListItem mblListItemUnchecked"的tabindex =" 0"为widgetid =" item1728"咏叹调选定="假"角色="选项">     item1728 -     < div style =" display:inline-block;"数据道场-连接点=" labelNode"> N.A.< / DIV>     < div class =" deviceCategory">通用< / div> < / DIV> 它就像模板字符串。调整大小后,内部div变为: < div style =" display:block;"数据道场-连接点=" labelNode"> N.A.< / DIV> 没有"内联"所有的布局都会搞乱,因此字段会消失掉#34; (实际上在下一行后面)。 我想知道为什么会这样 - 显示样式被硬编码到模板字符串中! 此外,我在运行时检查了CSS规则,并不是由于它们,它确实是改变了的html。

1 个答案:

答案 0 :(得分:1)

ListItem(dojox / Mobile / ListItem.js中的源代码)具有以下功能:

<div id="text" contenteditable="true">a<img src="https://www.splitbrain.org/_static/ico/circular/ico/add.png"/><img src="https://www.splitbrain.org/_static/ico/circular/ico/add.png"/><img src="https://www.splitbrain.org/_static/ico/circular/ico/add.png"/><img src="https://www.splitbrain.org/_static/ico/circular/ico/add.png"/>b<img src="https://www.splitbrain.org/_static/ico/circular/ico/add.png"/>cdefghijkl<img src="https://www.splitbrain.org/_static/ico/circular/ico/add.png"/>mnopq<img src="https://www.splitbrain.org/_static/ico/circular/ico/add.png"/>rst<img src="https://www.splitbrain.org/_static/ico/circular/ico/add.png"/>uvw<img src="https://www.splitbrain.org/_static/ico/circular/ico/add.png"/>xyz<img src="https://www.splitbrain.org/_static/ico/circular/ico/add.png"/></div>

在调整大小后调用此函数,您可以看到将labelNode显示样式设置为&#34; block&#34;。

您可以在定义DeviceListItem时替换此功能,保持原始源不变,但更改显示样式。