在钛合金中,我有一个用于某些过滤器选项的选项对话框。但我不确定如何根据最佳实践为每个选项添加点击事件。
查看
<OptionDialog id="filterDialog" title="Filter">
<Options>
<Option id="byDate">Date added</Option>
<Option>Rating - high first</Option>
<Option>Rating - low first</Option>
<Option>Cancel</Option>
</Options>
</OptionDialog>
Controller
$.byDate.addEventListener("click", function() {
alert('Filter by date');
});
但是上述事件监听器会导致以下错误:
'undefined' is not an object (evaluating '$.byDate.addEventListener');
为每个选项分配点击事件的最佳实践是什么?
最佳答案
您必须创建附加到 OptionDialog 的 eventListener,而不是每个选项,然后检查 event.index 属性的值:
$.filterDialog.addEventListener('click', function(event) {
switch (event.index) {
case 0:
alert('Date added selected')
break;
case 1:
alert('Rating - hight selected')
break;
case 2:
alert('Rating - low selected')
break;
}
});
还记得设置OptionDialog.cancel property Titanium SDK 会自动处理取消按钮。根据您的情况,您可以将其添加到 <OptionDialog>
:
<OptionDialog id="filterDialog" title="Filter" cancel="3">
关于钛合金 - 如何最好地将单击事件分配给选项对话框上的选项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22492606/