3

ある要素から別の要素にイベントを委任したいと考えています。この簡単なテスト コードを使用すると、Error: UNSPECIFIED_EVENT_TYPE_ERR: DOM Events Exception 012 行目 (ディスパッチ) で例外が発生します。私はこれを読みましたが、その前のコメント行は何の違いもありません。どうすればこれを機能させることができますか?

コード:

<!DOCTYPE html>
<html>
  <head>
    <script src="jquery.js"></script>
    <script>
    function init(){}

    function delegator(e){
        alert('the first');
        var other = document.getElementById('myCanvas2');
        //e.trigger = other;
        other.dispatchEvent(e);
    }

    $("#myCanvas").live('dblclick', delegator);
    $("#myCanvas2").live('dblclick', function(){alert('the second');});
    </script>
  </head>
  <body>
    <canvas id="myCanvas" style="width:1200px; height:600px; border: solid black 1px;"></canvas>
    <canvas id="myCanvas2" style="width:1200px; height:600px; border: solid black 1px;"></canvas>
  </body>
</html>
  • 委任されたオブジェクトは、Google マップ キャンバスやその他のサービスなどのさまざまなオブジェクトに置き換えられるため、すべての情報が委任されたオブジェクトに送信されることが重要です。
4

1 に答える 1

4
  1. .live was deprecated a while ago.

  2. Since you are using jQuery use .trigger(...)

    function delegator(e){
        alert('the first');
        $('#myCanvas2').trigger(e);
    }
    
    $("#myCanvas").on('dblclick', delegator);
    $("#myCanvas2").on('dblclick', function(){alert('the second');});
    

    Demo: http://jsfiddle.net/maniator/zbJBd/

于 2012-12-21T15:04:10.360 に答える