Frage

Ich arbeite an einem Greasemonkey -Skript für Google Mail, in dem ich eine Kopie des "Posteingangs" -Links erstellen muss. Die Verwendung von Clonenode funktioniert in Ordnung, aber ich denke, es gibt ein Onclick -Ereignis, das zur Laufzeit damit verbunden ist. Dies ist also eine zweiteilige Frage: 1. Gibt es eine Möglichkeit zu sehen, welche Ereignisse mit einem Knoten verbunden sind? 2. Gibt es auch eine Möglichkeit, diese Ereignisse zu kopieren? Das, was ich am nächsten fand, war JQuery, und ich bin noch nicht bereit, dorthin zu gehen. Vielen Dank!

War es hilfreich?

Lösung

  1. Nicht, es sei denn, es wird mit dem festgelegt onclick Attribut auf das Element.
  2. Nicht zuverlässig (Sie können die kopieren onclick Attribut, aber ob dies weiter funktionieren wird, hängt davon ab, ob es verwendet wurde und was es tut).

Sie sind besser dran, Ihre eigenen hinzuzufügen click Handler, und dann dieses Ereignis auf dem Original auszulösen ... oder das Verhalten auf andere Weise zu simulieren.

Andere Tipps

Ich denke, wir können dieses Zeug mit dieser Theorie lösen:

Wir haben Nodelist in JS, auch Leberlisten genannt. Wir können überprüfen, wenn sich ihre Länge ändert, und addEvent die gewünschten gemeinsamen Ereignisse mit dem neuen Element in der Liste (Länge 1).

Was sagt ....

Hier ist das Beispiel, das Nodelist zum Hinzufügen von Ereignissen verwendet.

<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>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top