JQuery Hinzufügen von HTML und Ereignisse
-
06-09-2019 - |
Frage
Im Moment habe ich die folgenden in JQuery 1.3.2
for (i = 0; i < totalPages; i++) {
var newDiv = $("<a href=\"#\">").append(i+1).click(function()
{
alert(i+1);
});
$('#pageLinks').append(newDiv).append(" ");
}
Dies gibt eine Liste von Zahlen, wie erforderlich, aber die Warnung, wenn das erzeugte Element klicken, um den Wert zurückgibt Totalpages, nicht der Wert von i in der Schleife. Wie kann ich das Click-Ereignis erhalten den Wert von i stattdessen aufmerksam zu machen?
Danke
Lösung
Versuchen Sie, diese
for (i = 0; i < totalPages; i++) {
var newDiv = $("<a href=\"#\">").append(i+1).click(function()
{
alert(this.text);
});
$('#pageLinks').append(newDiv).append(" ");
}
Andere Tipps
Dieser Code soll Ihr Problem aussortieren:
for (i = 0; i < totalPages; i++) {
var newDiv = $("<a href=\"#\">")
.append(i+1)
.click(
function() {
alert($(this).html());
}
);
$('#pageLinks').append(newDiv).append(" ");
}
Wenn, sagen wir, Sie nicht den Text der Nummer als Teil der Verbindung haben, wie ich Werte wie diese in die ID codieren, die Sie diese geben würde:
<body>
<div id="pageLinks"><!-- --></div>
<script>
var totalPages = 10, newDiv;
for (i = 0; i < totalPages; i++) {
var link = "<a href=\"#\" id=\"link-"+(i+1)+"\">"+(i+1)+"</a>";
newDiv = $(link).click(function() {
alert($(this).attr('id').split('-')[1]);
});
$('#pageLinks').append(newDiv).append(' ');
}
</script>
</body>
Dies ist ein Bereich bezogenes Problem. Sie benötigen einen Verschluss um die Aussagen in der for-Schleife zu bilden, indem das, was ich einen Bereich Wache nennen. So etwas wie folgt aus:
var totalPages = 10;
for (i = 0; i < totalPages; i++) {
(function() {
var no = i + 1;
var newDiv = $("<a href=\"#\">").append(i+1).click(function() {
alert(no);
});
$('#pageLinks').append(newDiv).append(" ");
})();