gpt4 book ai didi

javascript - Dashcode 列表 - OnClick

转载 作者:行者123 更新时间:2023-11-30 13:43:15 25 4
gpt4 key购买 nike

我在 Dashcode 中创建了一个项目,插入了一个列表控件,启用了一个动态列表,创建了一个 JSON 对象并将其与控件相关联。代码看起来像这样......

var stations = {

_rowData: ["Mitchelton", "Gaythorne", "Albion", "Central",
"Burpengary", "Petrie", "Morayfield", "Caboolture", "Ferny Grove"],

numberOfRows: function() { return this._rowData.length; },

prepareRow: function(rowElement, rowIndex, templateElements) {
if (templateElements.label) {
templateElements.label.innerText = this._rowData[rowIndex];
}
rowElement.onclick = function(event) { alert("Row "+rowIndex); };
}

如您所见,当选择一个项目时,它将打印 rowIndex,但我想显示该索引处的实际值。

不幸的是,这个(例如)“this._rowData[2]”不起作用,它似乎无法找到“_rowData”对象。

最佳答案

这应该有效:

prepareRow: function(rowElement, rowIndex, templateElements) {
if (templateElements.label) {
templateElements.label.innerText = this._rowData[rowIndex];
}

var _this = this;
rowElement.onclick = function(event) { alert(_this._rowData[2]); };
}

问题是在 rowElement.onclick 事件处理程序中,this 指的是 DOM 元素 rowElement,而不是您的 stations 对象。我们通过创建一个指向 stations 对象的变量(我将其命名为 _this,但您可以随意调用它)然后使用该变量来解决该问题每当我们想要访问事件处理程序中的 stations 对象时。

有关 this 关键字的更多信息,请参阅以下两篇文章:

关于javascript - Dashcode 列表 - OnClick,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1102028/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com