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!');} )