moveTo не работает с событием onClick в dojox.mobile.ListItem - PullRequest
0 голосов
/ 17 ноября 2011

Я занимаюсь разработкой веб-страницы с помощью 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>

Что это делает, когда щелкает тег div с идентификатором «listItem1», он показывает тег div с идентификатором «view2». Но когда я добавляю в него событие onClick, оно НЕ работает. Без события onClick все работает нормально.

Ответы [ 2 ]

1 голос
/ 18 ноября 2011

ПОЛУЧИЛ ЭТО!

Добавьте следующий скрипт:

<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> 

Также удалите значение атрибута "onClick" из тега div с идентификатором "listItem1".

Спасибона это обсуждение за помощь.

0 голосов
/ 18 ноября 2011

Что вы пытаетесь сделать с событием 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");
}

Надеюсь, что это помогает, и я вас правильно понял.

РЕДАКТИРОВАТЬ:

Также я, когда я пытался использовать moveTo с onClick в списке, пункт onClick будетработать и переехать не получится.Вы можете удалить атрибут moveTo и добавить эту строку в последнюю строку вашей новой функции:

this.transitionTo("move2");

ИЗМЕНИТЬ СНОВА:

Также вы можете удалить переход и добавить его вПереход к звонку.

...