2017-11-24 17 views
0

ドラッグ&ドロップを行うテーブルがあります。ドラッグ・アンド・ドロップを行うことができるように、またドラッグ・アンド・ドロップせずにページをスクロールするには、Jquery Touchを適用します。Jquery touch events applyは関数ではありません

問題は、テーブルにタブを作成したときにコンソールにエラーが表示されることです。

$('.touchtable').tap('tap', function(e) { 
    console.log('hola2'); 
}); 

がどのように私はエラーを修正することができます

これはエラー

jquery.js:4737 Uncaught TypeError: ((jQuery.event.special[handleObj.origType] || {}).handle || handleObj.handler).apply is not a function 
at HTMLTableElement.dispatch (jquery.js:4737) 
at triggerCustomEvent (jquery.mobile-events.js:846) 
at HTMLTableElement.tapFunc2 (jquery.mobile-events.js:498) 
at HTMLTableElement.dispatch (jquery.js:4737) 
at HTMLTableElement.elemData.handle (jquery.js:4549) 

コードは、このされているのですか?

私はjqueryのタッチについて読ん情報ドラッグ&ドロップするには、ここ

https://github.com/benmajor/jQuery-Touch-Events

コードです

if ($('.touchtable').on('doubletap',function(e){ 

$("#tbodyproject").sortable({ 

    items: "> tr", 
    appendTo: "parent", 
    helper: "clone", 
    placeholder: "placeholder-style", 
    containment: ".table", 
    start: function(event, ui) { 

     var cantidad_real = $('.table thead tr th:visible').length; 
     var cantidad_actual = $(this).find('.placeholder-style td').length; 

      if(cantidad_actual > cantidad_real){ 
      var cantidad_a_ocultar = (cantidad_actual - cantidad_real); 

      for(var i = 0; i <= cantidad_a_ocultar; i++){ 
       $(this).find('.placeholder-style td:nth-child('+ i +')').addClass('hidden-td'); 
      } 
     } 

     ui.helper.css('display', 'table') 
    }, 
    stop: function(event, ui) { 
     ui.item.css('display', '') 
    }, 
    update: function(event, ui) { 
     let newOrder = $(this).sortable('toArray'); 
     $.ajax({ 
      type: "POST", 
      url:'/admin/projects/updateOrder', 
      data: {ids: newOrder} 
     }) 
     .done(function(msg) { 
     location.reload();   
     }); 
    } 
}).disableSelection(); 

})); 
+0

なぜ????????? –

+0

私はスクロール(ページ)を作成してドラッグ&ドロップすることができます。 ifとwhenユーザーがダブルタップメイクスクロールを行うのは良い考えではありません。 ifに入力しないと、ユーザーはスクロールできます。 –

+0

if条件が意味をなさない。私はこれが動作するとは思わない –

答えて

0

コードは次のようにする必要があります

$('.touchtable').on('doubletap', function(e) { 
    console.log('User tapped touchtable'); 
}); 
1

を使用する必要があります代わりにtapメソッドを使用し、tapメソッドと呼ばれるonメソッドのtapパラメータを渡します。

$('.touchtable').tap(function(e) { 
    console.log('hola2'); 
}); 

注:

$('.touchtable').on('tap', function(e) { 
    console.log('hola2'); 
}); 

は別の方法では、直接このよう tapメソッドを呼び出すことができる第一の方法は、イベントの委任方法であり、第二の方法は、直接法です。動的に要素を挿入した場合は、イベント委譲メソッドを使用して機能させる必要があります。

+1

パーフェクト;)ありがとう –

+0

悪いニュースは、コンピュータでは動作しますが、モバイルでは動作しません@BhojendraNepal –

+0

ご覧になれますか? –

関連する問題