2016-05-04 16 views
0

Ich versuche, den onClick-Wert von Hyperlink, der von einer Javascript-Datei zur Laufzeit generiert wird, zu erhalten.Get OnClick Wert von dynamisch generierte Schaltfläche

Ich bin in der Lage, den Wert zu erhalten, wenn ich darauf mit JQuery klicken, wie ich JQuery auf den Hyperlink, der verwendet wird, konzentrieren kann.

Zur Laufzeit ist dies jedoch eine andere Geschichte, unser Problem ist auch, dass Link (Anker) keine ID hat, so kann ich es nicht einfach abholen.

Ich kann die JavaScript-Datei nicht als eine Herstellerdatei bearbeiten. Jeder bekommen würde sehr geschätzt werden.

Danke, Matt

+0

'$ ('übergeordnetes Element in dom') auf ('Klick', 'a [href]', ...)', Was meinst du mit Fokus auf den verwendeten Link? ** Bearbeiten **: geklärter Selektor. – noahnu

+0

versuchen Sie, andere Dinge über diesen Knopf zu finden; Wenn Sie die ID nicht haben, haben Sie vielleicht die Eltern-ID. Vielleicht hat die Schaltfläche einen eindeutigen Klassennamen oder sie ist immer der erste ihrer Klasse im DOM. –

+0

leider nein, ich habe keinen namen oder id, was es schwer macht. Gibt es eine Möglichkeit, nach dem Inhalt eines Links zu suchen, um es vielleicht zu bekommen? – Matt

Antwort

0

sollten Sie in der Lage sein Veranstaltung Delegation zu verwenden (jQuery, vanilla JavaScript) Ihre Event-Listener auf das Element hinzufügen, die die generierten Elemente enthält.

Hier ist ein konstruiertes Beispiel:.

// presumably the elements live in some distinct container 
$('.vendor-div').on('click', 'a', function() { 
    console.log('hullo!'); 
}); 

setTimeout(function() { 
    var a = document.createElement('a'); 
    a.setAttribute('href', '#'); 
    a.textContent = "click me!"; 
    $('.vendor-div').append(a); 
}, 1000); 

Fiddle

+0

Entschuldigung, ich folge nicht. kannst du bitte ausarbeiten? – Matt

+0

Wenn die dynamisch generierten Elemente an ein bestimmtes Wrapper-Element angehängt werden, können Sie eine Ereignisdelegation anhängen, um einen Listener an diesen anzuhängen. Wenn das nicht der Fall ist und sie auf der gesamten Seite angehängt werden, können Sie die Ereignisdelegierung "body" verwenden und Klicks (mit den Inhalten der Verknüpfung oder was auch immer) im Body des Handlers filtern. Wenn es Letzteres ist, kann ich meine Antwort entsprechend aktualisieren. – pdoherty926

Verwandte Themen