0

我正在使用 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(&quot;cfText&quot;).innerText = &quot;Value set&quot;;"
  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 事件,它可以正常工作。

4

2 回答 2

1

知道了!

添加以下脚本:

<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”属性值。

感谢这次讨论对我的帮助。

于 2011-11-18T13:54:27.617 回答
-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 调用。

于 2011-11-17T21:28:47.777 回答