jquery longclick на элементе <option>

Я пытаюсь вызвать событие на опцию из выпадающего меню. например:

<select id="select1">
<option id="1">1</option>
<option id="2">1</option>
</select>

я использовал пример на http://api.jquerymobile.com/taphold/ и добавил событие к опции с id=1:

$( "#1" ).bind( "taphold", tapholdHandler );

чтобы проверить функциональность, tapholdHandler был просто простым предупреждением. но не сработало.

Кроме того, я пытался использовать

jQuery( "#1" ).on( "tap", function( event ) {alert('works!');} )

но без успеха. Тем не менее, я обнаружил, что это можно добавить к элементу select, но тогда это работает для всех элементов option в теге select. Как я могу вызвать событие longclick/taphold для одного элемента option? то, что я хотел бы сделать, - это иметь возможность долго щелкать (удерживать нажатой) нужный элемент и отображать диалоговое окно, в котором предлагается удалить элемент из списка.

3 ответа

Ваш селектор неверен

$('#1') выберет элемент с id=1

измени свой код на

$( "#1" ).bind( "taphold", tapholdHandler );

Вы не можете связать события с <option> элементы с любой реальной точностью. Однако, как указано в другом месте, вы можете change событие меню выбора в этом случае

$('#select1').change(function(){
    var selected_option = $(this).find(':selected');
});

Как насчет привязки к "изменению"? это сработает всякий раз, когда элемент выбран или изменен.

    $('#select1').change(function(){
         // action here
     });

Сектор селектора id используется следующим образом

$('#1') выберет элемент с id=1

измени свой код на

$( "#1" ).bind( "taphold", tapholdHandler );

а также

$( "#1" ).on( "tap", function( event ) {alert('works!');} )
Другие вопросы по тегам