我正在使用Dojo mobile v1.5.1开发一个网页。
以下是示例代码。
<div dojotype="dojox.mobile.View" selected="true" id="view1">
<div dojotype="dojox.mobile.Heading" label="dojox.mobile.Heading"></div>
<div dojotype="dojox.mobile.EdgeToEdgeCategory" label=
"dojox.mobile.EdgeToEdgeCategory"></div>
<div dojotype="dojox.mobile.EdgeToEdgeList">
<!-- PROBLEM IS IN THIS DIV TAG -->
<div dojotype="dojox.mobile.ListItem" moveto="view2" transition="slide"
label="dojox.mobile.ListItem" onclick=
"document.getElementById("cfText").innerText = "Value set";"
id="listItem1"></div>
</div>
</div>
<div dojotype="dojox.mobile.View" id="view2">
<div dojotype="dojox.mobile.Heading" label="dojox.mobile.Heading" back="Back" moveto=
"view1"></div>
<div dojotype="dojox.mobile.EdgeToEdgeList">
<div dojotype="dojox.mobile.ListItem">
<span id="cfText" class="xspTextComputedField">Value NOT set</span>
</div>
</div>
</div>
它的作用是,当点击带有id“listItem1”的div标签时,它会显示id为“view2”的div标签。但是当我在其中添加onClick事件时,它不起作用。如果没有onClick事件,它可以正常工作。
答案 0 :(得分:1)
GOT IT!
添加以下脚本:
<script type="text/javascript">
function setValue() {
var cfText = dojo.byId("cfText");
cfText.innerHTML = "Value Set";
}
dojo.addOnLoad(
function() {
dojo.connect(dijit.byId("listItem1"), "onClick", dojo.hitch(dijit.byId("listItem1"), setValue));
}
);
</script>
同样从id标记为“listItem1”的div标签中删除“onClick”属性值。
感谢this discussion帮助我。
答案 1 :(得分:-1)
你想用onclick事件做什么?
你不能像下面那样重写那行:
<div dojotype="dojox.mobile.ListItem" transition="slide"
label="dojox.mobile.ListItem" onclick="someNewFunction(this)" id="listItem1">
然后创建一个新功能来做你想做的事:
function someNewFunction(obj) {
var cfText = dojo.byId("cfText");
cfText.innerHTML = "Value";
obj.transitionTo("move2");
}
希望有帮助,我理解正确。
编辑:
此外,当我尝试在listItem上使用带有onClick的moveTo时,onClick将起作用,而moveTo则不会。您可以删除moveTo属性并在新函数的最后一行添加此行:
this.transitionTo("move2");
再次编辑:
您也可以删除转换并将其添加到transitionTo调用。