0

マウス イベントとタッチ イベントにイベント ノーマライザーを使用しています。そうすれば、2 つのコードを維持する必要がなくなります。1 つはタッチ イベントに応答し、もう 1 つはタッチ イベントに応答します。

正常に動作しますが、 live() 関数で動作させることはできません。

正規化プロセスの最後に、正規化されたイベントが次のようにトリガーされます。

var touchMouseEvent = normalizeEvent(type, event, event.pageX, event.pageY);
$(event.target).trigger(touchMouseEvent);

これらの呼び出しを使用してライブ イベントを機能させようとしました。

$('.MyClass').live('TouchMouseEvent', function(){...});
$('.MyClass').live('normalizeEvent', function(){...});
$('.MyClass').live('touchMouseEvent', function(){...});

しかし、何も機能しません。

通常、カスタム イベントのトリガーは $('.Class').trigger('customName') のような文字列として呼び出されるので、これが原因で苦労しているのでしょうか。

これが正規化に使用するコードです。 https://gist.github.com/2375726

ありがとう!

4

2 に答える 2

0

解決策を見つけました。live() 関数を使用する代わりに、delegate 関数を使用します。

例えば:

$('#wayPointList').delegate('.deleteWayPoint', TouchMouseEvent.UP, function(){
//do something here
});

魔法のように動作します!回答/提案をありがとうございます。

于 2012-07-23T18:55:28.943 に答える
0

live() が委譲に基づくカスタムメソッド/イベントで機能するかどうかはわかりません。委任自体は、発生する実際の DOM イベントに依存しますが、それらは document.body レベルまで委任されます。代わりに bind() を使用してみてください。

于 2012-07-23T17:47:49.007 に答える