1

我想获得长按事件。所以我在 jquery mobile 中尝试 taohold 事件。但是当我添加按钮时它不会调用。

我喜欢小提琴

<button id="test">Test</button>

$('#test').bind('taphold', function(e) {
     alert("jj") ;  
    e.preventDefault();
    return false;
} );


$(function(){
  $( "#test" ).bind( "taphold", tapholdHandler );

  function tapholdHandler( event ){
       alert("jjghfhg") ;
  }
});
4

1 回答 1

2

您的问题是您没有正确使用 jQuery Mobile。为了让 taphold 正常工作,您需要在精确的时刻绑定您的事件。document ready 或 $(function(){ 不能在这里使用。主要是因为它们会在 jQuery Mobile 重新设置其 DOM 内容之前很久就触发。

要了解更多信息,请在此处阅读我的文章。

这就是为什么我问你知道什么是 jQuery Mobile 页面事件。要完成这项工作,您的内容必须是页面 div 的一部分,甚至必须在 pageinit 事件之后执行绑定。

工作示例:http: //jsfiddle.net/Gajotres/uBtcL/

HTML:

<div data-role="page" id="index">
    <button id="test">Test</button>
</div>  

Javascript:

$(document).on('pagebeforeshow', '#index', function(){ 
    $('#test').bind('taphold', function(e) {
        alert("jj") ;  
        e.preventDefault();
        return false;
    } );
});
于 2013-09-06T07:33:30.610 回答