1

「受信トレイ」リンクのコピーを作成する必要があるGmail用のgreasemonkeyスクリプトに取り組んでいます。cloneNodeの使用は問題なく機能しますが、実行時にそれにアタッチされるonclickイベントがあると思います。したがって、これは2つの部分からなる質問です。1。ノードにアタッチされているイベントを確認する方法はありますか?2.それらのイベントもコピーする方法はありますか?私が見つけた最も近いものはjQueryでした、そして私はまだそこに行く準備ができていません。ありがとう!

4

3 に答える 3

5
  1. onclick要素の属性を使用して設定されていない限り、そうではありません。
  2. 確実ではありません(onclick属性をコピーできますが、それが引き続き機能するかどうかは、属性が使用されたかどうかとその機能によって異なります)。

独自のclickハンドラーを追加してから、元のイベントでそのイベントをトリガーすることをお勧めします...または他の方法で動作をシミュレートします。

于 2009-05-02T21:29:42.220 に答える
0

イベントを追加するために Nodelist を使用する例を次に示します。

<body>
        <div id="one" class="clones" style="background:red;width:100px;height:100px"></div>
    </body>

    <script>

        //Selecor based live list [Advantage]
        var nodeList = document.getElementsByClassName('clones')

        //Common Function for nodelist
        nodeList.addEvents = function(){
            nodeList.item(nodeList.length-1).addEventListener('click',function(){
                    console.log(this.id);
            });
        }
        nodeList.addEvents();

        //Making Clone
        var _clone  =  document.getElementsByTagName('div')[0].cloneNode(true);

        //Changing Id
        _clone.id="two"

        document.body.appendChild(_clone);
        nodeList.addEvents();
    </script>
于 2013-08-10T19:02:06.093 に答える
0

この理論を使用して、この問題を解決できると思います。

JS には liveList とも呼ばれる NodeList があります。それらの長さが変わるたびに確認できます。(長さ-1) のリストの新しい要素に必要な共通イベントを addEvent します。

何を言います....

于 2013-08-10T18:20:03.307 に答える