Как определить двойной щелчок в ИЗБРАННОМ элементе с несколькими

У меня есть ИЗБРАННЫЙ элемент с атрибутом НЕСКОЛЬКИХ. При двойном щелчке по опции в списке я хочу принять меры на основе нажимаемой опции.

Я понимаю, что элемент ОПЦИИ не обрабатывает ondblclick событие. Если я обрабатываю dblclick событие ИЗБРАННОГО элемента, есть ли некоторый способ, которым я могу определить, по какой опции дважды щелкнули?

<select size="4" name="MySelect" multiple="multiple" ondblclick="myFunction();">
    <option ... />
    ...
</select>

Предпочтительно перекрестный браузер, но IE только сделал бы.

Править

Я, очевидно, не был достаточно ясен. То, что я должен сделать, определяют, по какой опции дважды щелкнули из обработчика событий (или что двойной щелчок был в области ИЗБРАННОГО элемента без опции). Поиск selectedIndex не сделает, поскольку ИЗБРАННЫЙ элемент имеет НЕСКОЛЬКО, припишите: если пользователь будет держать CTRL или SHIFT при двойном щелчке, то больше чем один объект будет выбран: Я только хочу опцию, по которой на самом деле дважды щелкнули.

9
задан Joe 21 February 2010 в 15:03
поделиться

3 ответа

Попробуйте следующее:

document.getElementById('selectID').ondblclick = function(){
    alert(this.selectedIndex);
    // or alert(this.options[this.selectedIndex].value);
};

Если вы дважды щелкните элемент, вы выберете его и сможете использовать this.selectedIndex.

8
ответ дан 4 December 2019 в 13:01
поделиться

Почему вы не можете прикрепить событие к опциям? Здесь все работает нормально (проверено с jquery и без него в Firefox 3.6).

<select size="4" name="MySelect" multiple="multiple">
    <option>hello</option>
    <option>aoeu</option>
    <option>ieao</option>
    <option>.yao</option>
</select>
<script type="text/javascript">
    $(function(){
        $("option").bind("dblclick", function(){
            alert($(this).text());
        });
    });
</script>
3
ответ дан 4 December 2019 в 13:01
поделиться

Следуя тому, что написал Хармен ... следующее будет предупреждать значение параметра двойного щелчка ... (кросс-браузер)

document.getElementById('selectID').ondblclick = function(e){
    var evt = window.event || e;
    var elem = evt.srcElement || evt.target;
    alert(elem.value);
};​
1
ответ дан 4 December 2019 в 13:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: