Titanium 钛合金-如何最好地将单击事件指定给选项对话框上的选项?

Titanium 钛合金-如何最好地将单击事件指定给选项对话框上的选项?,titanium,appcelerator,titanium-alloy,Titanium,Appcelerator,Titanium Alloy,在钛合金中,我有一些过滤器选项的OptionDialog。但根据最佳实践,我不确定如何在每个选项中添加单击事件 查看 <OptionDialog id="filterDialog" title="Filter"> <Options> <Option id="byDate">Date added</Option> <Option>Rating - high first</Option>

在钛合金中,我有一些过滤器选项的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> 
但上述事件侦听器会导致以下错误:

'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;     
    }
});
另外,请记住设置和钛SDK将自动处理取消按钮。在您的情况下,您可以将其添加到


您必须创建附加到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;     
    }
});
另外,请记住设置和钛SDK将自动处理取消按钮。在您的情况下,您可以将其添加到


<OptionDialog id="filterDialog" title="Filter" cancel="3">