2

我正在使用 HP webOS 3.0 和 Enyo 框架。

我有一个简单的问题,即如何在单击按钮时显示和隐藏图像。我有 2 张图像,我想在单击一个按钮时显示图像并在单击另一个按钮时隐藏。

我在一个视图上有两个窗格,分别称为左窗格和右窗格。我在左窗格中有大约 10 个项目。

在每个项目上单击适当的视图在右窗格中调用。

我正在使用以下代码进行操作。

   showTaskView: function(){
      this.$.rightPane.selectViewByName("taskView");
   },

现在我想知道如何在包含左窗格和右窗格的主视图中访问控件的属性。

例如,我想在单击右侧窗格中显示/隐藏的任务视图中显示/隐藏图像,该按钮既不在左窗格也不在右窗格中,而是在包含左窗格和右窗格的视图的标题部分。

它不允许我从主视图访问控件的 image.setSrc 方法。我已经使用以下代码进行了尝试。

editTask: function() {
   this.$.task.image.setSrc("images/image2.jpg");
}

editTask: function() {
   this.$.image.setSrc("images/image2.jpg");
}

它给了我以下错误:

Cannot read property 'setSrc' of undefined
4

1 回答 1

0

使用 VirtualList,您的哈希将仅引用当前“选定”行。“选定”是接收事件的行或使用 prepareRow() 显式选择的行。如果要更改每一行,则应设置一个属性并在列表上调用 refresh() 以使其重新呈现。

下面应该工作(我认为......)

setupRow: function(inSender, inIndex) {
                 var row = this.data[inIndex];
                 if (row) {
                    this.$.caption1.setContent("Greet a " + row.task + ":");
                    this.$.star.setSrc("images/grey-star.png");
                    if(this.hideStart) this.$.star.hide();
                    this.$.caption2.setContent(row.assignto);
                    return true;
                 }
               },
               buttonClick: function(){
               this.hideStar = true;
               this.$.myVirtualList.refresh();
            }
于 2011-07-22T13:16:26.430 回答