zu verhindern Ich erstelle eine Drag & Drop-Anwendung mit Jquery. Alle Funktionen funktionieren ordnungsgemäß, aber ich verwende html.change für die Aktivierung des Skripts für gelöschte Elemente. Das Problem, das ich gerade habe, hängt davon ab, wie viele Änderungen ich an dem HTML in der Anwendung mache, es verlangsamt die Anwendung.Versuchen, Jquery-Funktion zu Schleife
Dies ist der Code, Javascript I
bin mit$(function() {
$('html').change(function() {
$(".checkdrop").change(function() {
var checkdrop = $(this).closest('.labelDrop').find('.checkdrop').val();
var textul = $(this).closest('.labelDrop').find('.textUL');
var input = '<input type="text" placeholder="Value" class=""><br>';
if (checkdrop >= 3) {
$(this).closest('.labelDrop').find('.three').css("display", "block");
$('th.three').css("display", "table-cell")
}
if (checkdrop >= 4) {
$(this).closest('.labelDrop').find('.four').css("display", "block");
$('th.four').css("display", "table-cell")
}
if (checkdrop >= 5) {
$(this).closest('.labelDrop').find('.five').css("display", "block");
$('th.five').css("display", "table-cell")
}
if (checkdrop >= 6) {
$(this).closest('.labelDrop').find('.six').css("display", "block");
$('th.six').css("display", "table-cell")
}
if (checkdrop >= 7) {
$(this).closest('.labelDrop').find('.seven').css("display", "block");
$('th.seven').css("display", "table-cell")
}
if (checkdrop >= 8) {
$(this).closest('.labelDrop').find('.eight').css("display", "block");
$('th.eight').css("display", "table-cell")
}
if (checkdrop == 2) {
$(this).closest('.labelDrop').find('.three,.four,.five,.six,.seven,.eight').css("display", "none").val("")
}
if (checkdrop == 3) {
$(this).closest('.labelDrop').find('.four,.five,.six,.seven,.eight').css("display", "none").val("")
}
if (checkdrop == 4) {
$(this).closest('.labelDrop').find('.five,.six,.seven,.eight').css("display", "none").val("")
}
if (checkdrop == 5) {
$(this).closest('.labelDrop').find('.six,.seven,.eight').css("display", "none").val("")
}
if (checkdrop == 6) {
$(this).closest('.labelDrop').find('.seven,.eight').css("display", "none").val("")
}
if (checkdrop == 7) {
$(this).closest('.labelDrop').find('.eight').css("display", "none").val("")
}
});
});
});
Wenn ich eine Warnung am Ende des „checkdrop“ gesetzt wird es die gleiche Menge an Zeit als die Menge an Änderungen, die ich habe ausgelöst mit dem HTML gemacht.
Gibt es eine Möglichkeit, dies zu erleichtern und zu verhindern, dass der Code in Schleife geht?
Vielen Dank im Voraus.
weil Sie binden die Ereignisse .... Warum haben Sie die HTML-Änderung()? – epascarello
Viele Verbesserungen zu machen. Am wichtigsten ist: Halten Sie die Handler nicht immer wieder an. Verwenden Sie statt aller if-Anweisungen einen Schalter oder einen else if. –