質問

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

役に立ちましたか?

解決

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

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

他のヒント

この理論を使用してこのような問題を解決できると思います:

JSには、liveListsとも呼ばれるNodeListがあります。長さが変わるたびに確認し、希望する共通イベントを(length-1)のリストの新しい要素に追加します。

言うこと...

これは、イベントを追加するために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>
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top