在Titanium Alloy中,我有一些OptionDialog用于某些过滤器选项。但是,根据最佳做法,我不确定如何为每个选项添加点击事件。
查看
<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>
控制器
$.byDate.addEventListener("click", function() {
alert('Filter by date');
});
但是上面的事件listerner导致以下错误:
'undefined' is not an object (evaluating '$.byDate.addEventListener');
为每个选项分配点击事件的最佳做法是什么?
答案 0 :(得分:4)
您必须创建附加到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">