Frage jQuery: Wie geht man mit Änderungstext von span um?


Ich benutze jQuery und ich möchte etwas in einem Bereich (genannt span1) und ich will wenn Text von span1 verändert etwas auf seinen Wert und zeigt es in anderen Spannen (genannt "span2, span3, ...). Wie kann ich mit der Textänderung der Spanne umgehen?

Vielen Dank


35
2018-06-09 05:07


Ursprung


Antworten:


Sie könnten die Funktion verwenden, die den Text von span1 ändert, um den Text der anderen zu ändern.

Als Work around, wenn Sie wirklich wollen, dass es ein change Ereignis, dann ordnen Sie Text nicht zu Bereich 1 zu. Weisen Sie stattdessen eine Eingabevariable in jQuery zu, schreiben Sie ein Änderungsereignis in sie und ändern Sie den Text von span1. Ändern Sie stattdessen den Wert Ihrer Eingabevariablen und feuern Sie das Änderungsereignis ab , so:

var spanChange = $("<input />");
function someFuncToCalculateAndSetTextForSpan1() {
    //  do work
    spanChange.val($newText).change();
};

$(function() {
    spanChange.change(function(e) {
        var $val = $(this).val(),
            $newVal = some*calc-$val;
        $("#span1").text($val);
        $("#spanWhatever").text($newVal);
    });
});

Obwohl ich das Gefühl habe, dass diese "Umgehung", obwohl sie in einigen Aspekten der Erstellung eines einfachen Änderungsereignisses nützlich ist, sehr überfordert ist, sollten Sie die Änderungen an anderen Spannen gleichzeitig vornehmen, wenn Sie span1 ändern.


15
2018-06-09 05:22



Span hat das Ereignis "Änderung" standardmäßig nicht. Sie können dieses Ereignis jedoch manuell hinzufügen.

Hören Sie sich das Änderungsereignis von span an.

$("#span1").on('change',function(){
     //Do calculation and change value of other span2,span3 here
     $("#span2").text('calculated value');
});

Und wo auch immer Sie den Text in span1 ändern. Das Änderungsereignis manuell auslösen.

$("#span1").text('test').trigger('change'); 

25
2018-05-23 12:55