0

DOM要素のダブルタップ/シングルタップには以下を使用しています。

$(selector).doubletap(
     /** doubletap-dblclick callback */
     function(event){          
          var $this = $(event.currentTarget);
     },

     /** touch-click callback (touch) */
     function(event){
         doSingleClick(this)
     },
     /** doubletap-dblclick delay (default is 500 ms) */
     400
);

上記から呼び出す別の関数:

 function doSingleClick(but) {
      var $but = $(but);

      if($but.closest("#domElementId").length < 1)
          return;

      //"I have more code here to handle the if statement"
 }

doSingleClick関数は、$の値の戻り値を超えることはありませんが、正しく定義されることはありません。私の仮定は、パラメーターを正しく渡していないということです。私の問題はどこにありますか?

4

1 に答える 1

1

ここからこのコードを引き出したようです:

http://appcropolis.com/implementing-doubletap-on-iphones-and-ipads/

コードを見ると、.doubletap()に提供している関数は、jQueryセレクターを利用せずに、ブラウザーからのイベントコールバックで呼び出されます。'this' in:

 function(event){
     doSingleClick(this)
 },

おそらく、期待している要素ではなく、ウィンドウコンテキストです。これを修正する最も簡単な方法は、現在の要素を入力として使用することです。

 function(event){
     doSingleClick(event.currentTarget)
 },

これは、ダブルタップ/クリック関数が$ this = $(event.currentTarget)ですでに実行していることです。

お役に立てば幸いです。

于 2012-12-11T14:37:53.523 に答える