我是javascript的新手,特别是dojo而且我坚持了,我假设任务非常简单,但我无法解决它。
基本上我要做的是以下内容:
当我点击listitem时,我应该被发送到另一个视图。我这样做:
<li data-dojo-type="dojox.mobile.ListItem"
data-dojo-props="moveTo:'#'" onClick="transitionTo('#recommend',1);">Recommend App</li>
现在,id = recommended`的div有2个列表项。
<div id="recommend" data-dojo-type="dojox.mobile.ScrollableView">
<div class="belowTab" style="width: 100%;"> </div>
<ul data-dojo-type="dojox.mobile.RoundRectList">
<li data-dojo-type="dojox.mobile.ListItem">via Email</li>
<li data-dojo-type="dojox.mobile.ListItem"
data-dojo-props="moveTo:'#'" onClick="postToWall();">via Facebook</li>
</div>
</ul>
如果某个特定函数返回true,我想让两个列表项都可见,否则隐藏第二个listitem并显示第一个。 我想知道逻辑以及如何处理将if语句与div一起集成的想法
答案 0 :(得分:0)
有一个非常难以理解的创建事件挂钩的方法作为标记,我将在这里演示。但是,最好在代码库中创建一个函数,然后将其设置为dojoProps属性,例如function myonclick() { ... }
和<div data-dojo-type="dijit._Widget" data-dojo-props="onClick: myonclick"></div>
。
要实现这一点,您需要确定View
小部件提供的事件。简单的方法是打开dojotoolkit-src/dojox/mobile/View.js
文件 - 您要查找的文件可能是onStartView || onBeforeTransitionIn
?
通过标记,我们现在为onBefore创建dojo /方法,以便您可以操作列表中的子项。顺便说一下,你有一个迷路的关闭</div>
标签。
<div id="recommend" data-dojo-type="dojox.mobile.ScrollableView">
<div class="belowTab" style="width: 100%;"> </div>
<ul data-dojo-type="dojox.mobile.RoundRectList">
<li data-dojo-type="dojox.mobile.ListItem">via Email</li>
<li data-dojo-type="dojox.mobile.ListItem"
data-dojo-props="moveTo:'#'" onClick="postToWall();">via Facebook</li>
</ul>
<script type="dojo/method" event="onBeforeTransitionIn" args="moveTo, dir, transition, context, method">
// onBeforeTransitionIn(moveTo, dir, transition, context, method):
var listWidget = dijit.byNode(dojo.query("#recommended ul")[0]);
// say you have a function with true/false return, if item should show
dojo.forEach(listWidget.getChildren(), function(Item, idx) {
dojo.style(Item.domNode, {
display: showItem(Item) ? '' : 'none'
});
});
</script>
</div>