2

トリガーイベントを使用しようとしました。手でイベントを個別にトリガーすると、問題が発生せず、必要なすべてのフィールドがイベント引数に含まれます。jQuery を使用するとtrigger()すべて動作しますが、イベント引数にはほとんど何もありません。

<div id="dragDiv">
    <button id='dragButton' >tap</button>
</div>

$("#dragButton")
   .hammer({
        // options...
   })
   .bind("drag", doCall);

function doCall(ev){
    console.log(ev);
}

$('#dragButton').trigger("drag");

結果

v.Event {type: "drag", timeStamp: 1357286124612, jQuery18306904058358632028: true, isTrigger: true, exclusive: undefined…}
currentTarget: <button>
data: null
delegateTarget: <button>
exclusive: undefined
handleObj: Object
isTrigger: true
jQuery18306904058358632028: true
namespace: ""
namespace_re: null
result: undefined
target: <button>
timeStamp: 1357286124612
type: "drag"
__proto__: Object

しかし、私は必要です:

v.Event {type: "drag", originalEvent: MouseEvent, position: Object, direction: "right", distance: 22.825424421026653…}
angle: -28.810793742973058
currentTarget: <button>
data: null
delegateTarget: <button>
direction: "right"
distance: 22.825424421026653
distanceX: 20
distanceY: -11
exclusive: undefined
handleObj: Object
isTrigger: true
jQuery18306904058358632028: true
namespace: ""
namespace_re: null
originalEvent: MouseEvent
position: Object
result: undefined
target: <button>
timeStamp: 1357286139160
touches: Array[1]
type: "drag"
__proto__: Object
4

2 に答える 2

0

セキュリティ上の理由から、JavaScriptを使用してイベントをトリガーすると、ユーザーがイベントをトリガーした場合とは異なる方法で登録されます。あなたはあなたの出力にあることに気付くでしょう

isTrigger: true

自分でイベントをトリガーすることは、ユーザーがトリガーするときとは常に異なります。

于 2013-01-04T08:21:44.647 に答える