【问题标题】:jquery longclick on <option> elementjquery longclick on <option> 元素
【发布时间】:2013-09-09 10:14:09
【问题描述】:

我正在尝试触发下拉菜单中某个选项的事件。 例如:

<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 元素中,但是它适用于 select 标记中的所有选项元素。 如何在单个选项元素上触发 longclick/taphold 事件? 我想要做的是能够长按(按住单击)所需的项目并显示一个对话框,该对话框提供从列表中删除该项目。

【问题讨论】:

    标签: jquery html events long-click


    【解决方案1】:

    你的选择器错误

    $('#1') 将选择一个 id=1 的元素

    把你的代码改成

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

    您不能以任何实际精度将事件绑定到&lt;option&gt; 元素。但是,在这种情况下,您可以如其他地方所述绑定到选择菜单的 change 事件

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

    【讨论】:

    • 对不起,我拼错了 ID。我在上面的代码中更正了它们。
    【解决方案2】:

    id-selector 扇区是这样使用的

    $('#1') 将选择一个 id=1 的元素

    将您的代码更改为

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

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

    【讨论】:

    • 对不起,我拼错了 ID。我在上面的代码中更正了它们。
    【解决方案3】:

    绑定到“更改”怎么样?这将在选择或更改元素时触发。

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

    【讨论】:

    • 但这如何检测长按?
    • 如果您尝试检测
    猜你喜欢
    • 2011-07-19
    • 2014-10-03
    • 2022-01-20
    • 1970-01-01
    • 2012-01-28
    • 1970-01-01
    • 1970-01-01
    • 2012-08-14
    • 1970-01-01
    相关资源
    最近更新 更多