0

iPhone phonegap アプリケーションでいくつかの UI が作成される複雑なコードをデバッグしようとしています。

問題は、要素を押すと、そのtouchstartイベントに関連付けられているイベントハンドラー (おそらく) が起動しないように見えることです。

何らかの理由でこれらのイベントが実際には関連付けられていないか、何らかの理由でイベントに到達する前にクリックがブロックされているかのいずれかです...

私はこの状況をデバッグしようとしていますが、疑問に思っていました:

  1. jQueryオブジェクトが与えられた場合、デバッグ目的で(jQu​​ery経由で)それにアタッチされたイベントハンドラーをリストする方法はありますか?

  2. オーバーライド.onしてconsole.logパラメータを設定する簡単な方法はありますか

  3. そのような問題にどのように取り組むべきかについての他のアイデア

更新:実際に要素にtouchstartハンドラーがあり、それが呼び出されていないことを検証した後、クリックまたはmousedownイベントハンドラーを追加すると、それらが呼び出されることがわかりました。

これは部分的に jQuery モバイルが原因であると思われますが、コントロールの一部のみに影響を与える方法、理由、および理由がわかりません (それらは JQM コントロールではありません...)。

4

2 に答える 2

0

このChrome拡張機能は、添付されたJQueryイベントを一覧表示します。

于 2012-07-23T07:19:15.680 に答える
0

jQueryの要素によって発生したすべてのイベントをどのように記録しますか?

function getEventsList($obj) {
    var ev = new Array(),
        $events = $obj.data('events');
    for(var i in $events) {
        ev.push(i);
    }
    return ev.join(' ');
}

$obj.on(getEventsList($obj), function(e) {
    console.log(e);
});

これを使用して、jquery プラグインによって要素にバインドされた正確なカスタム イベントを特定しました。添付されたすべてのイベントを取得し、イベントが発生したときにそのイベントの console.log を呼び出します。

于 2012-07-23T07:46:40.717 に答える