jquery programmgesteuert klicken Sie auf neues dom-element
Ich versuche zu tun, etwas tricky (zumindest für mich) in jquery. Ich habe eine checkbox, die gebunden ist, um eine Funktion namens add_course die wie folgt aussieht:
function add_course(){
var id = $(this).attr('id');
if ($(this).is(':checked')){
if($('#courseInput').val().search(id) < 0){
$('#CourseSummary').append('<span id="cn'+id+'"><a href="#" class="courseDel" id="'+id+'">X</a> '+$('#course'+id+' a').html()+'<br/></span>');
$('#courseInput').val(function(index,value){
return value+ id +',1;';
});
addTotal($('#price'+id).text());
}
imageSync();
}else{
//This is where my question refers to.
$('a#'+id+'.courseDel').click();
}
}
Wenn jemand prüft Sie die checkbox, wird ein span mit ein paar Daten und ein link zur Seite Hinzugefügt werden. Der neue link ist angeschlossen, um eine andere Funktion mit
$('.courseDel').live('click', del_course);
del_course hat eine ganze Reihe von Sachen, die, genau wie add_course.
Wie Sie sehen können, in der add_course Funktion. Ich überprüfe ob die checkbox aktiviert wurde und nur Sachen tun, wenn es wurde.
hier ist del_course:
function del_course(){
var id = $(this).attr('id');
$('#cn'+id).remove();
$('#courseInput').val(function(index,value){
return value.replace(id+',1;',"");
});
subtractTotal($('#price'+id).text());
imageSync();
}
Ich würde gerne den anderen Teil meiner add_course Funktion auslösen, die del_course für den entsprechenden link, hab Hinzugefügt, wenn das Kontrollkästchen aktiviert wurde. Funktioniert das nicht. Ich habe wahrscheinlich über komplizierte etwas.
hier ist der html-Code für die checkbox (ein Beispiel von einem von Ihnen):
<input type="checkbox" class="courseAdd" name="courseAdd" id="204"/>
hier ist der html-Code für den link, der Hinzugefügt wird, wenn jemand Klicks auf eine checkbox:
<span id="cn204"><a href="#" class="courseDel" id="204">X</a> Course Title<br/></span>
Es funktioniert großartig, wenn jemand auf den link klickt, aber wie kann ich es auslösen programmatisch?
- 2 Elemente, die hier zu beachten: Erstens
id
sollten EINDEUTIG sein, nicht geteilt, wie Sie es haben und auchID and NAME tokens must begin with a letter ([A-Za-z]) and may be followed by any number of letters, digits ([0-9]), hyphens ("-"), underscores ("_"), colons (":"), and periods (".").
w3.org/TR/html4/types.html auch stackoverflow.com/questions/70579/... - nach Wiederlesen die Frage, die ich bin nicht sicher, ob ich verstehe - was ist das problem, das Sie stoßen mit dieser Zeile: //Dies ist, wo meine Frage bezieht sich auf. $('a#'+id+'.courseDel').klicken Sie();
Du musst angemeldet sein, um einen Kommentar abzugeben.
Da haben Sie die ID des Elements, die Sie erstellt haben, einfach Referenzprojekt der ID und verwenden der
trigger()
Methode:Auch, eine ID ist nur eine Zahl falsch ist:
Verwenden Sie die jquery - trigger() Funktion.
courseDel
. Ich glaube, der OP will zum auslösen des click-Ereignisses der Anker, der gerade Hinzugefügt wurde.In der lange term, es könnte helfen, organisieren Sie Ihre code ein wenig, so dass entkoppeln Sie das DOM-event-handling von der Anwendungslogik.