2013-12-19 11 views
32

私はAngularJSカレンダー(本質的にはjQueryフルカレンダーで、アラムショーをラウンドさせてラップしています)で作業しています。ここで、カレンダーイベントアイテムのクリックは、ipadとdesktopの両方で、ft lab(https://github.com/ftlabs/fastclick)のfastclick.jsを呼び出すまで働いていました。今、カレンダーイベントアイテムのクリックはデスクトップ上でのみ機能しますが、ipadではまったく動作しません!jQueryカレンダーのイベント - クリックしてftLabで高速に起動しないクリック

しかし、他のng-clickは、デスクトップとiPadの両方でfastclickでうまく動作します。

タッチエンドイベントリスナーを追加してクリックイベントを呼び出すだけで、fastclick.jsの動作を理解していますが、カレンダーのイベントアイテムのクリックでこのイベントが失敗する理由を理解できません。

注:fastclickではなくngTouchを使用しようとしましたが、ng-clickは高速になりません。グーグルによると、他のすべては、あなたが視覚的なイベントであなたの要素にリンクされているイベントを調べることができます失敗した場合、ngTouchのNG-クリックは、jQueryの

+7

を必要とする、あなたのコードをリファクタリングする必要が

デメリット あなたは 'needsclick'クラスを追加しようとしたことがあり(https://github.com/ftlabs/fastclick #ignore-certain-elements-with-needsclick)? – JoseM

+2

コードサンプルで更新できますか?またはフィドル? – dmcqu314

+0

あなたはJSをどこに入れましたか?ヘッダの前に他のものを含めてみてください。 – wintercounter

答えて

1

で使用することはできません。http://www.sprymedia.co.uk/article/visual+event これは、任意のWebページに上層を追加し、あなたが視覚的に点検してみましょう要素にリンクされたJSコード(ポップアップでコードの一部を表示します)。

こうすれば、すべてが正しく設定されているかどうかを簡単に確認できます。

PS:私はこのツールやメーカーにリンクしていません。

1

私も同様の問題がありました。 fastclickjsブロックごとにjQuery .click()。しかし、jQueryを使用せずにイベントを送出すると、すべて正常に動作します。

1

これは古い質問ですが、おそらく誰かを助けるものです。

私も同様の問題があり、さらにfastclick.jsは助けにならなかったし、iPadで十分速くなかった。

通常のブラウザのクリックイベント(iPadの場合)では、タッチスタートで300msの遅延があり、touchendで300msの遅延が発生するという問題があります。

fastclick.jsもカレンダーと同じように競合していました。

私はちょうど自身の指令を書いて、それをng-mobile-clickと呼んだ。

指令ngMobileClick:テンプレートで

App.directive("ngMobileClick", [function() { 
    return function (scope, elem, attrs) { 
     elem.bind("touchstart click", function (e) { 
      e.preventDefault(); 
      e.stopPropagation(); 

      scope.$apply(attrs["ngMobileClick"]); 
     }); 
    } 
}]); 

用途:

<input type="button" value="somevalue" ng-mobile-click="someFunction(someParam)"/> 

利点: 標準クリックイベントと競合することはありません。 [fastclickのマニュアルで指定]としてあなたはそれ

関連する問題