Ich habe eine Website bestehend aus ein paar href Links und 2 Buttons, die ändern können, was diese Links sind.
<div class="links">
<p class="hlCategory">Classical Mechanics</p>
<ul>
<li><a class="topic_link" href="#">Position, Velocity, Acceleration</a></li>
<li><a class="topic_link" href="#">Newton's Laws</a></li>
<li><a class="topic_link" href=“#">Friction</a></li>
</ul>
</div>
<div class="buttons">
<p>Choose Dificulty:
<button type=“button" onclick=“beginerButtonAction(this)">Beginer</button>
<button type=“button" onclick="intermediateButtonAction(this)">Intermediate</button>
</p>
</div>
Nach dem ursprünglichen HTML geladen wird, wenn Links angeklickt werden, wird die Alarm-Funktion in der JavaScript-Datei ausgelöst.
$(function(){
$(".topic_link").click(function(){
alert($(this).text());
});
});
Und alles funktioniert gut.
Das Problem tritt auf, nachdem die Tasten gedrückt und die href geändert wurden.
function beginerButtonAction(id) {
$("div.links").remove();
var newLinks;
newLinks= '<div class="links">'+
'<p class="hlCategory">Classical Mechanics</p>'+
'<ul>'+
'<li><a class="topic_link" href=“#”>Moment of Inertia</a></li>'+
'</ul>'+
'<p class="hlCategory"></p>'+
'<ul>'+
'<li><a class="topic_link" href=“#">Drag Force</a></li>'+
'</ul>'+
'</div>';
var $jNewLinks = $(newLinks);
$("body").append($jNewLinks);
}
function intermediateButtonAction(id) {
$("div.links").remove();
var newLinks;
newLinks= '<div class="links">'+
'<p class="hlCategory">Classical Mechanics</p>'+
'<ul>'+
'<li><a class="topic_link" href=“#”>Torque</a></li>'+
'</ul>'+
'<p class="hlCategory"></p>'+
'<ul>'+
'<li><a class="topic_link" href=“#">Momentum</a></li>'+
'</ul>'+
'</div>';
var $jNewLinks = $(newLinks);
$("body").append($jNewLinks);
}
Nachdem der HTML-Code geändert wurde, löst die href die Warnung nicht mehr aus. Ich möchte, dass der Alarm ausgelöst wird, nachdem HTML geändert wurde. Irgendwelche Gedanken?
Probieren Sie '$ (" body "). On (" klick ",". Topic_link ", function() {...})' –
Funktioniert gut! Vielen Dank! –